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

[目次][用語][索引][前へ][次へ]

4.8.4 サービス実行のタイムアウト

Message-driven Bean(サービス)の実行にタイムアウトを設定することで,業務処理で無限ループやデッドロックが発生した場合などに,タイムアウトによって業務を強制的に停止できます。タイムアウトによる業務処理の強制停止には,アプリケーションサーバのメソッドキャンセル機能を使用します。

TP1インバウンドアダプタでのサービス実行のタイムアウトの概要を次の図に示します。

図4-13 TP1インバウンドアダプタでのサービス実行のタイムアウト

[図データ]

Message-driven Bean(サービス)の実行時間を監視することによって,障害が発生して応答がない場合,業務を強制停止して,Message-driven Bean(サービス)呼び出しスレッドでタイムアウトを検知できます。タイムアウトを検知したMessage-driven Bean(サービス)呼び出しスレッドは,OpenTP1にRPCエラー応答を返します。

なお,Message-driven Beanでの処理の実行状態によっては,メソッドキャンセル機能で強制停止を実行できないことがあります。この場合,業務処理の終了後,TP1インバウンドアダプタは呼び出し元のOpenTP1にRPC応答送信を試みます。呼び出し元がRPC最大応答待ち時間の経過によってすでに応答を待っていなかった場合には,応答送信のコネクション確立に失敗するため,エラーメッセージ(KDJE58400-E)が出力されます。

タイムアウトの詳細については,「4.14 OpenTP1とアプリケーションサーバ間のタイムアウトの設定」を参照してください。