同時に実行するスレッド数を制御するには,Webコンテナ単位で制御する方法,Webアプリケーション単位で制御する方法,およびURLグループ単位で制御する方法があります。
(a) Webコンテナ単位での制御
Webコンテナ単位で同時実行スレッド数を制御する場合,Webコンテナ全体で同時に実行できるスレッドの最大数を設定します。ここで設定したスレッド数は,WebコンテナにデプロイされているすべてのWebアプリケーションで共用するスレッド数となります。
Webコンテナ単位での同時実行スレッド数の制御は,簡易構築定義ファイルで設定します。指定するパラメタは,Webサーバ連携の場合と,インプロセスHTTPサーバを使用する場合で異なります。論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,次のどちらかのパラメタを指定します。
(b) Webアプリケーション単位での制御
Webアプリケーション単位で同時実行スレッド数を制御する場合,Webコンテナでのスレッド数制御も同時に設定する必要があります。Webアプリケーション単位での同時実行スレッド数制御で設定するパラメタを次の表に示します。
表4-11 Webアプリケーション単位でスレッド数を制御する場合の設定パラメタ
| 設定するパラメタ |
設定単位 |
| Webコンテナ単位 |
Webアプリケーション単位 |
| 最大同時実行スレッド数 |
○ |
○ |
| 占有スレッド数 |
− |
○ |
| 実行待ちキューサイズ |
− |
○ |
| デフォルトの実行待ちキューサイズ |
− |
○ |
(凡例) ○:設定する。 −:該当しない。
次に,Webアプリケーション単位での同時実行スレッド数制御の設定について説明します。Webアプリケーション単位での同時実行スレッド数の制御は,usrconf.propertiesおよびサーバ管理コマンドで設定します。なお,Webコンテナ単位での設定パラメタについては,「(a) Webコンテナ単位での制御」を参照してください。
●簡易構築定義ファイルでの設定
簡易構築定義ファイルでは,次の内容が設定できます。
- 同時実行スレッド数の制御の有無
論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,webserver.container.thread_control.enabledパラメタで,Webアプリケーション単位で同時実行スレッド数を制御するかどうかを指定します。「true」を指定すると,Webアプリケーション単位での同時実行スレッド数制御が有効になります。なお,「false」を指定するとWebアプリケーション単位での同時実行スレッド数制御が無効となり,Webコンテナ単位で同時実行スレッド数が制御されます。
- デフォルトの実行待ちキューサイズ
実行スレッド数が最大数に達した場合,リクエストはキューに溜められます。このときの,Webアプリケーションで共通となる実行待ちキューサイズ(デフォルトの実行待ちキューサイズ)をwebserver.container.thread_control.queue_sizeパラメタで,論理J2EEサーバ(j2ee-server)の<configuration>タグ内に指定します。ここで設定した値は,Webアプリケーション単位での同時実行数を指定していない場合に適用されます。
●サーバ管理コマンドでの設定
サーバ管理コマンドでは,次の内容が設定できます。
- Webアプリケーション単位での最大同時実行スレッド数
Webアプリケーションで,最大で幾つのスレッドを同時に実行できるかを指定できます。
- Webアプリケーション単位の占有スレッド数
Webアプリケーションで,最低限確保するスレッド数(占有スレッド数)を指定できます。
なお,占有スレッド数を設定しない場合は,0を指定します。
- Webアプリケーション単位の実行待ちキュー
実行スレッド数が最大数に達した場合,リクエストはキューに溜められます。このときの,実行待ちキューサイズをWebアプリケーション単位で指定します。
サーバ管理コマンドを使用する場合には,WAR属性ファイルの<thread-control>タグで,同時実行スレッド数を設定します。
- <thread-control>タグ下の<thread-control-max-threads>タグに,Webアプリケーション単位での最大同時実行スレッド数を指定します。
- <thread-control>タグ下の<thread-control-exclusive-threads>タグに,Webアプリケーション単位での占有スレッド数を指定します。
- <thread-control>タグ下の<thread-control-queue-size>タグに,実行待ちキューサイズを指定します。
サーバ管理コマンドのcjgetapppropコマンドで属性ファイルを取得し,属性ファイル編集後に,cjsetapppropコマンドで編集内容を反映させてください。サーバ管理コマンドについては,マニュアル「Cosminexus アプリケーション設定操作ガイド」を参照してください。
(c) URLグループ単位での制御
URLグループ単位で同時実行スレッド数を制御する場合,Webアプリケーション単位での同時実行スレッド数制御,およびWebコンテナでのスレッド数制御も同時に設定する必要があります。URLグループ単位での同時実行スレッド数制御で設定するパラメタを次の表に示します。
表4-12 URLグループ単位でスレッド数を制御する場合の設定パラメタ
| 設定するパラメタ |
設定単位 |
| Webコンテナ単位 |
Webアプリケーション単位 |
URLグループ単位 |
| 同時実行スレッド数の制御をするかどうか |
− |
○ |
− |
| 最大同時実行スレッド数 |
○ |
○ |
○ |
| 占有スレッド数 |
− |
○ |
○ |
| 実行待ちキューサイズ |
− |
○ |
○ |
| デフォルトの実行待ちキューサイズ |
− |
○ |
− |
| URLグループ単位の同時実行スレッド数制御の定義名 |
− |
− |
○ |
| 制御対象となるURLパターン |
− |
− |
○ |
(凡例) ○:設定する。 −:該当しない。
次に,URLグループ単位での同時実行スレッド数制御の設定について説明します。URLグループ単位での同時実行スレッド数の制御は,サーバ管理コマンドで設定します。なお,Webコンテナ単位での設定パラメタについては,「(a) Webコンテナ単位での制御」を,Webアプリケーション単位での設定パラメタについては,「(b) Webアプリケーション単位での制御」を参照してください。
サーバ管理コマンドでは,次の内容が設定できます。
- URLグループ単位の同時実行スレッド数制御の定義名
同時実行スレッド数制御をするURLのグループ名を指定します。グループ名はWebアプリケーション内で一意な名称を指定する必要があります。
使用できる文字は次のとおりです。
- 半角英数字(A〜Z,a〜z,0〜9)
- 半角ハイフン(-)
- 半角アンダーバー(_)
また,文字列の長さは1〜64文字となります。
- URLグループ単位の最大同時実行スレッド数
URLグループで,最大で幾つのスレッドを同時に実行できるかを指定します。設定範囲は次のとおりです。
- 最大同時実行スレッド数の設定範囲
- 1≦最大同時実行スレッド数(URLグループ単位)≦最大同時実行スレッド数(Webアプリケーション単位)
- URLグループ単位の占有スレッド数
URLグループで,最低限確保するスレッド数(占有スレッド数)を指定します。設定範囲は次のとおりです。
- 占有スレッド数の設定範囲
- 0≦占有スレッド数(URLグループ単位)≦最大同時実行スレッド数(URLグループ単位)
- さらに,URLグループ単位の占有スレッド数は,Webアプリケーション単位の占有スレッド数以下である必要があります。
また,Webアプリケーション内のURLグループ単位に設定している占有スレッド数の総和は,次の条件を満たしている必要があります。なお,条件は,Webアプリケーション単位の最大同時実行スレッド数とWebアプリケーション単位の占有スレッド数の値によって異なります。
- Webアプリケーション単位の設定が,最大同時実行スレッド数≠占有スレッド数の場合
- 占有スレッド数(Webアプリケーション単位)≧占有スレッド数の総和(URLグループ単位)
- Webアプリケーション単位の設定が,最大同時実行スレッド数=占有スレッド数の場合
- 占有スレッド数(Webアプリケーション単位)>占有スレッド数の総和(URLグループ単位)
なお,占有スレッド数を設定しない場合は,0を指定します。
- 実行待ちキューサイズ
実行スレッド数が最大数に達した場合,リクエストはキューに溜められます。このときの,実行待ちキューサイズをURLグループ単位で指定します。設定範囲は次のとおりです。
- 実行待ちキューサイズの設定範囲
- 0≦実行待ちキューサイズ(URLグループ単位)≦2,147,483,647
なお,0を設定すると,実行待ちキューを使用しない設定になります。このとき,同時実行スレッド数が上限に達すると,リクエストはエラーとなります。
- 制御対象となるURLパターン
同時実行スレッド数の制御対象となるURLを指定します。URLパターンはWebアプリケーション内で一意な名称を指定する必要があります。また,Webアプリケーションのコンテキスト以下を指定してください。
サーバ管理コマンドを使用する場合は,WAR属性ファイルの<thread-control>タグ下の<urlgroup-thread-control>タグで,同時実行スレッド数を設定します。
- <urlgroup-thread-control-name>タグに,同時実行スレッド数制御の定義名を指定します。
- <urlgroup-thread-control-max-threads>タグに,URLグループ単位での最大同時実行スレッド数を指定します。
- <urlgroup-thread-control-exclusive-threads>タグに,占有スレッド数を指定します。
- <urlgroup-thread-control-queue-size>タグに,実行待ちキューサイズを指定します。
- <urlgroup-thread-control-mapping>タグに,制御対象となるURLパターンを<url-pattern>タグで囲んで指定します。
サーバ管理コマンドのcjgetapppropコマンドで属性ファイルを取得し,属性ファイル編集後に,cjsetapppropコマンドで編集内容を反映させてください。サーバ管理コマンドについては,マニュアル「Cosminexus アプリケーション設定操作ガイド」を参照してください。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.