Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

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同時実行数の制御の概要を次の図に示します。

図4-12 Message-driven Bean同時実行数の制御の概要

[図データ]

Message-driven Bean(サービス)の同時実行数を制御するプロパティについて,次の表に示します。これらの値を適切に設定しないと,正しく同時実行数を制御できません。

表4-10 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要求はスケジュールキューに滞留した状態になります。