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の定義」を参照してください。

(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(サービス)実行中にだけ実行できます。なお,保護区では強制終了(メソッドキャンセル)できません。
    参考
    正常に開始/終了した場合は,ログファイルにメッセージが出力されます。