Hitachi

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


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