Hitachi

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


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アプリケーションが次のどちらかで停止した場合に終了します。

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(サービス)実行中にだけ実行できます。なお,保護区では強制終了(メソッドキャンセル)できません。

    参考

    正常に開始/終了した場合は,ログファイルにメッセージが出力されます。