Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
4.15.2 Message-driven Bean(サービス)の開始と終了
Message-driven Bean(サービス)の開始と終了について説明します。
- 注意
- TP1インバウンド連携機能使用時にMessage-driven Beanをリロードする場合は,OpenTP1からのRPCの発行を止めてからリロードしてください。リロード中にRPCを発行した場合は,Message-driven Beanは終了していると見なされ,RPCの発行元にはエラー応答が返ります。
- <この項の構成>
- (1) Message-driven Bean(サービス)の開始
- (2) 終了
(1) Message-driven Bean(サービス)の開始
TP1インバウンドアダプタを使用するJ2EEアプリケーションをcjstartappコマンドで起動すると,Message-driven Bean(サービス)は開始します。
ActivationSpecの設定値が不正な場合,エラーメッセージが出力され,Message-driven Bean(サービス)の起動は失敗します。ActivationSpecの設定については,「4.10.5 ejb-jar.xmlの定義」を参照してください。
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(サービス)実行中にだけ実行できます。なお,保護区では強制終了(メソッドキャンセル)できません。
- 参考
- 正常に開始/終了した場合は,ログファイルにメッセージが出力されます。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.