Cosminexus 機能解説
付録C.9 Webコンテナによるスレッドの作成
Webコンテナでは,Webサーバ連携のためのスレッド,Webアプリケーションのためのスレッドなどを作成します。これらのスレッドに対して,システムのリソースが十分であるか検討します。
ここでは,サーブレットエンジンモードの場合の,Webコンテナが作成するスレッドについて説明します。
- <この項の構成>
- (1) 作成されるスレッドの種類と数
- (2) 作成されるスレッドの総数
Webコンテナが作成するスレッドを次に示します。
(a) Webサーバ連携のためのスレッド
●Webコンテナの簡易Webサーバを使用する場合(任意)
- 作成するスレッド
- TCPのコネクション接続要求を受信するスレッド,および受信したリクエスト処理用スレッドを作成します。
- スレッドの数
- TCPのコネクション接続要求を受信するスレッドは,1スレッドです。簡易Webサーバが受信したリクエスト処理用スレッドは,最小5スレッド,最大100スレッドです。
- リクエスト処理用スレッドは,起動時に5スレッド作成し,同時実行スレッド数が起動済みスレッド数を超えた場合,100スレッドまで作成されます。
なお,サーブレットエンジンモードの場合,Webコンテナの簡易Webサーバの使用は任意となります。
●Webサーバ連携機能を使用する場合
- 作成するスレッド
- リダイレクタからのコネクション接続要求を受信するスレッド,およびリダイレクタから受信したリクエスト処理用スレッドを作成します。
- スレッドの数
- リダイレクタからのコネクション接続要求を受信するスレッドは,1スレッドです。リダイレクタから受信したリクエスト処理用スレッドは,WebサーバとWebコンテナとのコネクション数分スレッドを作成します。
- リダイレクタから受信したリクエスト処理用スレッドは,起動時にwebserver.connector.ajp13.max_threadsに指定された数分作成します(webserver.connector.ajp13.max_threadsのデフォルトは10)。
(b) Webアプリケーションのためのスレッド
Webアプリケーション単位に次のスレッドを作成します。最小1スレッド,最大3スレッドです。
- セッションの有効期限監視スレッド
- Webアプリケーションのリロード監視スレッド
(webserver.context.reloadable=trueを設定した場合)
- JSPの更新監視スレッド
(webserver.jsp.recompilable=trueを設定した場合)
(c) メインスレッド
なお,サーブレットエンジンモードの場合,メインスレッドとして1スレッド作成します。
Webコンテナがデフォルトの設定でプロセス起動時に作成するスレッドの総数を次に示します。ただし,この数値にはWebコンテナ以外,およびJavaVMが作成するスレッドは含まれていません。
作成するスレッドの総数は,レスポンス送信時のタイムアウトを設定しているかどうかによって異なります。
- レスポンス送信時のタイムアウトを設定しているとき
- スレッド総数=A+B+C+D+E
- レスポンス送信時のタイムアウトを設定していないとき
- スレッド総数=A+B+C+D
- (凡例)
- A:Webコンテナの簡易Webサーバを使用する場合のスレッド数
- B:Webサーバ連携機能を使用する場合のスレッド数
- C:Webアプリケーション単位のスレッド数
- D:メインスレッド
- E:レスポンス送信時のタイムアウトを監視するためのスレッド数
このため,プロセス起動時のスレッド総数は次のようになります。
- レスポンス送信時のタイムアウトを設定しているときのスレッド総数
- =6+11+(1×Webアプリケーション数)+1+1
- =19+Webアプリケーション数
- レスポンス送信時のタイムアウトを設定していないときのスレッド総数
- =6+11+(1×Webアプリケーション数)+1
- =18+Webアプリケーション数
プロセス起動後,Webサーバとのコネクション数,簡易Webサーバの同時実行数によってスレッド数が増加します。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.