4.15.2 Message-driven Bean(サービス)の開始と終了
Message-driven Bean(サービス)の開始と終了について説明します。
- 注意事項
-
TP1インバウンド連携機能使用時にMessage-driven Beanをリロードする場合は,OpenTP1からのRPCの発行を止めてからリロードしてください。リロード中にRPCを発行した場合は,Message-driven Beanは終了していると見なされ,RPCの発行元にはエラー応答が返ります。
- 〈この項の構成〉
(1) Message-driven Bean(サービス)の開始
TP1インバウンドアダプタを使用するJ2EEアプリケーションをcjstartappコマンドで起動すると,Message-driven Bean(サービス)は開始します。
ActivationSpecの設定値が不正な場合,エラーメッセージが出力され,Message-driven Bean(サービス)の起動は失敗します。ActivationSpecの設定については,「4.10.5 ejb-jar.xmlの定義」を参照してください。
(2) 終了
Message-driven Bean(サービス)は,TP1インバウンドアダプタを使用するJ2EEアプリケーションが次のどちらかで停止した場合に終了します。
-
cjstopappコマンドで通常停止した場合
-
cjstopappコマンドの-forceオプションまたは-cancelオプションを指定して強制停止した場合
Message-driven Bean(サービス)の終了処理中は,新たなRPC電文を受け付けないようにスケジュールキューは停止されます。また,未処理のRPC要求と実行中のMessage-driven Bean(サービス)は次のように処理されます。
- 新たに受信した未処理のRPC要求
-
リクエスト受け付けスレッドが受け付けたRPC要求です。RPC要求を破棄して,OpenTP1にRPCエラーを応答します。
RPCエラーコードとしてDCRPCER_NO_SUCH_SERVICE(-311)が返され,エラーメッセージが出力されます。
- 受信済みの未処理のRPC要求
-
スケジュールキューに登録済みのRPC要求です。RPC要求を破棄して,OpenTP1にRPCエラーを応答します。
RPCエラーコードとしてDCRPCER_SERVICE_TERMINATING(-313)が返され,エラーメッセージが出力されます。
- 実行中のMessage-driven Bean(サービス)
-
停止種別によって処理が次のように異なります。
-
通常停止の場合
終了するまで待機します。
-
強制停止の場合
強制終了(メソッドキャンセル)されます。
RPCエラーコードにDCRPCER_TIMED_OUT(-307)が返され,エラーメッセージが出力されます。
強制終了(メソッドキャンセル)は,Message-driven Bean(サービス)実行中にだけ実行できます。なお,保護区では強制終了(メソッドキャンセル)できません。
- 参考
-
正常に開始/終了した場合は,ログファイルにメッセージが出力されます。
-