5.1.3 Webサービス(SOAP通信)に関する多重度
- 〈この項の構成〉
(1) 同時実行スレッド数
Webサービス(SOAP通信)を使用する場合は,実行環境で設定しているWebサーバ(HTTPサーバ)の同時実行スレッド数も関係します。
標準受付(Webサービス)およびSOAP受付が複数ある場合,各受付に設定した同時実行スレッド数の合計より,Webサーバに設定した全体の同時実行スレッド数が優先されます。そのため,Webサーバに設定した全体の同時実行スレッド数が,各受付に設定した同時実行スレッド数の合計より小さいと,一度に多くの要求が来ても同時に処理ができないため,性能上のボトルネックになることがあります。
Webサービス(SOAP通信)を使用する場合のボトルネックを次の図に示します。
Webサービス(SOAP通信)に関する多重度は,次のように設定します。
-
HTTP Serverの場合
コンフィグファイルに指定できるディレクティブのうち,Webサーバの性能についての定義に関するディレクティブを定義します。
詳細については,マニュアル「HTTP Server」の「6.1.1 ディレクティブ一覧」を参照してください。
-
インプロセスHTTPサーバ機能またはNIO HTTPサーバ機能の場合
運用管理ポータルの[論理サーバの環境設定]−[J2EEサーバ]−[J2EEサーバの論理サーバ名]−[HTTPサーバ]で次の内容を設定します。
-
同時実行スレッド数
-
初期スレッド数
インプロセスHTTPサーバは,J2EEサーバの互換モードがV9互換モードの場合,使用できます。推奨モードの場合は,NIO HTTPサーバを使用してください。
インプロセスHTTPサーバについては,マニュアル「アプリケーションサーバ 機能解説 互換編」の「6. インプロセスHTTPサーバ」を参照してください。
NIO HTTPサーバを使用する場合のシステム構築の詳細については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「7. NIO HTTPサーバ」を参照してください。
-
(2) 占有スレッド数
Webサーバ(HTTPサーバ)の同時実行スレッド数が十分な数を確保できない状況であっても,個々のリクエスト受付で必ず最低限の実行をする場合は,占有スレッド数を定義します。
占有スレッド数を定義した場合は,Webサーバ(HTTPサーバ)の同時実行スレッド数以上の要求が個別のリクエスト受付に来た場合でも,必ず指定した数だけは同時に実行されます。
ほかのリクエスト受付に要求が来ていない場合は,最大同時実行数まで同時に実行できます。
HCSCサーバ内の占有スレッド数は,「表5-8 標準受付の占有スレッド数を設定するプロパティ」および「表5-9 ユーザ定義受付の占有スレッド数を設定するプロパティ」に示すように設定します。
定義ファイル |
プロパティ |
内容 |
---|---|---|
HCSCサーバランタイム定義ファイル |
request-soap.exclusive.threads |
同期(Webサービス・SOAP1.1)の標準受付の占有スレッド数 |
request-soap1_2.exclusive.threads |
同期(Webサービス・SOAP1.2)の標準受付の占有スレッド数 |
定義ファイル |
プロパティ |
内容 |
---|---|---|
ユーザ定義受付ランタイム定義ファイル |
user-defined-reception-soap.exclusive.threads |
占有スレッド数 |
最大同時実行数と占有スレッド数の関係を次の図に示します。
「図5-6 最大同時実行数と占有スレッド数の関係」に示すように,標準受付,2つのユーザ定義受付,およびWebサーバ(HTTPサーバ)を次のように設定した場合,標準受付は必ず2つのスレッドを占有します。
-
標準受付:最大キュー滞留数10,同時実行数3,占有スレッド数2
-
ユーザ定義受付:同時実行数2
-
Webサーバ(HTTPサーバ):同時実行数5
そのため,Webサーバ(HTTPサーバ)の同時実行数に指定した5件以上の要求が来ると,2つのスレッドは標準受付の実行のために使用され,残りの3つのスレッドを使ってユーザ定義受付が動作します。
ただし,最大キュー滞留数,標準受付の同時実行数,占有スレッド数,およびWebサーバ(HTTPサーバ)の同時実行数が「図5-6 最大同時実行数と占有スレッド数の関係」と同じ場合で,「図5-7 占有スレッド数を指定した受付に要求が来ない場合」に示すように,占有スレッド数を指定した標準受付に要求が来ていないときでも,必ず2つはスレッドを占有して実行する状態になります。また,ほかのユーザ定義受付では,それぞれ同時実行数が2件で合計の同時実行数は4件になるはずですが,Webサーバ(HTTPサーバ)の同時実行数5件であるため,残り3つしか処理できなくなります。ほかのリクエスト受付の同時実行数が増えることはありません。