2.13.1 スレッド数を制御する単位
同時に実行するスレッド数を制御するには,Webコンテナ単位で制御する方法,Webアプリケーション単位で制御する方法,およびURLグループ単位で制御する方法の3種類あります。
-
Webコンテナ単位での同時実行スレッド数制御
Webコンテナ上のWebアプリケーション全体で,同時にリクエストを処理するスレッド数を設定します。詳細については「2.14 Webコンテナ単位での同時実行スレッド数の制御」を参照してください。
-
Webアプリケーション単位での同時実行スレッド数制御
Webコンテナ上のWebアプリケーションごとに,同時にリクエストを処理するスレッド数を設定します。Webコンテナ単位での同時実行スレッド数制御より細かい単位でスレッド数を制御できます。詳細については,「2.15 Webアプリケーション単位での同時実行スレッド数の制御」を参照してください。
-
URLグループ単位での同時実行スレッド数制御
Webアプリケーション内のサーブレットやJavaBeansなどの業務ロジックに対応するURLごとに,同時にリクエストを処理するスレッド数を設定します。特定のURLへのリクエストを処理する業務ロジックをURLグループといいます。URLグループ単位で,同時実行スレッド数を制御するので,Webアプリケーション単位の制御より細かい単位でスレッド数を制御できます。詳細については,「2.16 URLグループ単位での同時実行スレッド数の制御」を参照してください。
それぞれの制御単位の関係について次の図に示します。
図に示すように,同時実行スレッド数制御のいちばん大きな単位は,Webコンテナ単位となります。Webコンテナ内のWebアプリケーションごとにスレッド数を制御する場合はWebアプリケーション単位で設定します。さらに,Webアプリケーション内のURLグループごとにスレッド数を制御する場合はURLグループ単位で設定します。スレッド数制御の最小単位はURLグループ単位となります。
スレッド数の制御には包含関係があるので,Webアプリケーション単位でスレッド数を制御する場合はWebコンテナ単位での設定も必要になります。また,URLグループ単位でスレッド数を制御する場合は,Webコンテナ単位およびWebアプリケーション単位での設定も必要になります。
なお,WebSocketや非同期サーブレットを処理するスレッドは最大同時実行スレッド数制御機能の管理対象外となります。
これらのスレッドの管理については,「7. NIO HTTPサーバ」参照してください。