Hitachi

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


4.8.2 スケジュールキューの制御

スケジュールキューの制御では,スケジュールキューの長さを設定できます。また,スケジュールキューに滞留しているRPC要求の数がキュー長に近づいていることを検知するために,スケジュールキューを監視できます。

〈この項の構成〉

(1) スケジュールキューの長さの設定

スケジュールキューの長さは,Message-driven Bean(サービス)ごとに設定できます。

設定は,Message-driven BeanのActivationSpecのqueue_max_lengthプロパティに設定します。設定を省略した場合は,スケジュールキューの長さは100になります。ActivationSpecの設定については,「4.10.5 ejb-jar.xmlの定義」を参照してください。

スケジュールキューに滞留しているRPC要求の数がキュー長に達している状態で新たにRPC要求が送信されると,スケジュール機能では,エラーメッセージ(KDJE58360-E)を出力します。呼び出し元のdc_rpc_call関数にはRPCエラー(DCRPCER_NO_BUFS(-304))が返されます。エラーの詳細については,「4.17 TP1インバウンドアダプタで発生するRPCエラー応答」を参照してください。

スケジュールキューのキュー長をRPC要求数に対して小さい値を設定していると,キューあふれによってRPCエラーが発生するおそれがあります。そのため,RPC要求に正常に応答するためには,OpenTP1から同時に送信されるRPC要求数と同程度のキュー長を設定してください。ただし,スケジュールキューに保持するRPC要求はメモリ上に保持するため,多くのRPC要求がスケジュールキューに滞留し,メモリ使用量が増加するおそれがあります。TP1インバウンドアダプタのメモリ使用量については,「4.4 TP1インバウンド連携機能で使用するメモリの見積もり」を参照してください。

(2) スケジュールキューの監視

スケジュール機能では,Message-driven Bean(サービス)ごとにしきい値を設定してスケジュールキューを監視することで,滞留しているRPC要求の数がキュー長に近づいていることを事前に検知できます。しきい値を設定しておくと,スケジュールキューに滞留しているRPC要求の数がしきい値を超えたときに,警告メッセージ(KDJE58361-W)が出力されます。なお,スケジュールキューの監視は,RPC通信機能のリクエスト受け付けスレッドによってRPC要求がスケジュールキューに登録されたタイミングで実行されます。

また,一度しきい値を超えたことを示すメッセージが出力されてから,再度メッセージを出力するまでの間隔(警告メッセージ抑止時間)も設定できます。

これらの設定は,Message-driven BeanのActivationSpecの次のプロパティに指定します。

ActivationSpecの設定については,「4.10.5 ejb-jar.xmlの定義」を参照してください。