Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

4.20.2 URLグループ単位の設定パラメタ

ここでは,URLグループ単位でスレッド数を制御する場合の設定について説明します。URLグループ単位でスレッド数を制御する場合は,次の設定が必要になります。

  1. Webコンテナ単位の同時実行スレッド数制御の設定
    Webコンテナ単位の最大同時実行スレッド数などを設定します。なお,ここで設定した最大同時実行スレッド数は,Webコンテナ上にデプロイされているすべてのWebアプリケーションで共有します。
    Webコンテナ単位での同時実行スレッド数制御の設定については,「4.18 Webコンテナ単位での同時実行スレッド数の制御」を参照してください
  2. Webアプリケーション単位の同時実行スレッド数制御の設定
    Webアプリケーション単位の同時実行スレッド数や,占有スレッド数などを設定します。なお,URLグループ単位での同時実行スレッド数を設定する場合,Webアプリケーション単位での占有スレッド数の設定は必須になります。
    Webアプリケーション単位での同時実行スレッド数制御の設定については,「4.19 Webアプリケーション単位での同時実行スレッド数の制御」を参照してください。
  3. URLグループ単位の同時実行スレッド数制御の設定
    URLグループ単位の同時実行スレッド数制御は,Webアプリケーション単位での同時実行スレッド数制御を設定しているWebアプリケーション内のURLグループに対して,次に示すパラメタを設定します。
    • URLグループ単位の同時実行スレッド数制御の定義名
      同時実行スレッド数制御の単位となるURLグループの名称を設定します。
    • 最大同時実行スレッド数
      URLグループで最大で幾つのスレッドを同時に実行できるかを設定します。
    • 占有スレッド数
      URLグループの占有スレッド数を設定します。
    • 実行待ちキューサイズ
      URLグループの実行待ちキューサイズを設定します。
    • URLパターン
      スレッド数制御の対象となるリクエストURLに振り分けるための,URLパターンを設定します。

以降で,URLグループ単位での同時実行スレッド数制御の設定項目の詳細を説明します。

<この項の構成>
(1) URLグループ単位の最大同時実行スレッド数
(2) URLグループ単位の占有スレッド数
(3) URLグループ単位の実行待ちキュー
(4) URLパターンの設定

(1) URLグループ単位の最大同時実行スレッド数

URLグループ単位で使用するスレッド数は,URLグループが属するWebアプリケーションのスレッド数です。このため,URLグループ単位でスレッドを一つ使用している場合,そのURLグループを含むWebアプリケーションでもスレッドが一つ実行されていることになります。

なお,URLグループ単位の最大同時実行スレッド数を設定していないリクエストURLについては,Webアプリケーション単位の共有スレッド数が使用されます。Webアプリケーション単位の共有スレッド数は,次のようになります。

Webアプリケーション単位の共有スレッド数=
Webアプリケーション単位の最大同時実行スレッド数−URLグループ単位の占有スレッド数の合計
注※ ここでの最大同時実行スレッド数の値には,次の1.と2.のうち,小さい方の値が適用されます。
  1. Webコンテナ単位の共有スレッド数
  2. Webアプリケーション単位の最大同時実行スレッド数に設定した値

このとき,Webアプリケーション単位の共有スレッド数は1以上である必要があります。共有スレッド数が0以下になる場合は,エラーが発生します。詳細は,「4.19.5 同時実行スレッド数制御の注意事項」を参照してください。

(2) URLグループ単位の占有スレッド数

URLグループ単位の占有スレッド数は,特定の業務ロジックをWebアプリケーション内のほかの業務ロジックの影響を受けないで実行させるために設定します。

URLグループ単位の占有スレッド数は,Webアプリケーションで設定されている占有スレッド数の範囲で指定します。このため,URLグループが含まれるWebアプリケーションで占有スレッド数を設定していない場合は,URLグループ単位でも占有スレッド数を設定できないので注意してください。

また,URLグループ単位の同時実行スレッド数制御を設定しているリクエストURLに対するリクエスト数が,URLグループ単位の占有スレッド数を超える場合で,かつURLグループ単位の最大同時実行スレッド数に満たない場合は,Webアプリケーション単位の共有スレッド数を使用してリクエストを処理します。このため,Webアプリケーション単位の共有スレッド数が少ないと,URLグループ単位の最大同時実行スレッド数は,設定値よりも少なくなることがあるので注意してください。

(3) URLグループ単位の実行待ちキュー

URLグループ単位の実行待ちキューは,URLグループ単位の同時実行スレッド数が上限に達したときにリクエストが入るキューです。URLグループ単位の実行待ちキューは,URLグループ単位の同時実行スレッド数の制御を設定した場合に,URLグループごとに作成されます。この実行待ちキューのサイズを設定します。

リクエストは,URLグループ単位の同時実行スレッド数が上限に達していて,実行待ちキューに空きがある場合,実行待ちキューに入ります。実行待ちキューの中のリクエストは,処理中のリクエストが完了したあとに,順次実行待ちキューから取り出され,実行されます。URLグループ単位の同時実行スレッド数が上限に達していて,実行待ちキューサイズに空きがない場合はエラーとなり,クライアントにHTTPステータスコード503が返ります。

なお,URLグループ単位の実行待ちキューに入るリクエストは,デフォルトの実行待ちキューやWebアプリケーションの実行待ちキューに入ることはありません。また,URLグループ単位の同時実行スレッド数の制御で設定したリクエストURLに該当しないリクエストについては,Webアプリケーションの実行待ちキューが使用されます。

(4) URLパターンの設定

リクエストURLを振り分けるためのURLパターンを設定します。URLパターンには,Servlet仕様のサーブレットマッピングのURLパターンが指定できます。指定できるURLパターンを次に示します。

なお,リクエストURLのURLパターンとのマッピング順序については,「4.20.4 URLパターンのマッピング処理」を参照してください。