4.8.3 Message-driven Bean(サービス)の同時実行数の制御
スケジュールキューに滞留しているRPC要求は,Message-driven Bean(サービス)実行制御スレッドによって順次取り出され,Connector 1.5仕様に準拠したWorkManagerによって管理されているMessage-driven Bean(サービス)呼び出しスレッドに委譲されます。RPC要求を委譲されたMessage-driven Bean(サービス)呼び出しスレッドによって,Message-driven Bean(サービス)が実行されます。
スケジュール機能では,WorkManagerのMessage-driven Bean(サービス)呼び出しスレッド数と,Message-driven Bean(サービス)のインスタンスプール数によって,同時に実行するRPC要求の数を制御します。
Message-driven Bean同時実行数の制御の概要を次の図に示します。
Message-driven Bean(サービス)の同時実行数を制御するプロパティについて,次の表に示します。これらの値を適切に設定しないと,正しく同時実行数を制御できません。
設定項目 |
設定対象 (設定個所) |
指定するタグ名 |
指定する内容 |
---|---|---|---|
Message-driven Bean(サービス)の同時実行数 |
TP1インバウンドアダプタ (Connector属性ファイル) |
<hitachi-connector-property>下の<resourceadapter-runtime><property>の<MaxTPoolSize> |
Message-driven Bean(サービス)呼び出しスレッドの最大数 |
<hitachi-connector-property>下の<resourceadapter-runtime><property>の<MinTPoolSize> |
Message-driven Bean(サービス)呼び出しスレッドの最小数 |
||
Message-driven Bean(サービス)のインスタンスプール数 |
Message-driven Bean (cosminexus.xml または MessageDrivenBean属性ファイル) |
<pooled-instance><maximum> |
Message-driven Bean(サービス)のインスタンスプール数の最大数 |
<pooled-instance><minimum> |
Message-driven Bean(サービス)のインスタンスプール数の最小数(ただし,指定しても常に1とみなされます) |
TP1インバウンドアダプタ単位の最大同時実行数は,WorkManagerのスレッドプール(MaxTPoolSize)に指定します。また,個々のMessage-driven Bean(サービス)単位の最大同時実行数は,Message-driven Beanのインスタンスプール(maximum)で指定します。
これらの最大値は,次の関係になるように指定してください。
Message-driven Bean(サービス)呼び出しスレッドの最大数(MaxTPoolSize)≧ それぞれのMessage-driven Bean(サービス)のインスタンスプール(maximum)の総和
- 注
-
指定した値がこの式の関係になっていない場合,Message-driven Bean(サービス)開始時に警告メッセージ(KDJE58452-W)が出力されます。
Message-driven Bean(サービス)実行制御スレッドでは,Message-driven Bean(サービス)呼び出しスレッド数がMessage-driven Bean(サービス)のインスタンスプールの最大値(maximum)の総和を超えることがないよう,Message-driven Bean(サービス)呼び出しスレッドの実行数を制御します。MaxTPoolSizeとmaximumの関係が上記の式の関係になっていない場合,RPC要求時にMessage-driven Bean(サービス)呼び出しスレッドまたはMessage-driven Bean(サービス)のインスタンスが不足することがあります。この場合,RPC要求はスケジュールキューに滞留した状態になります。