4.14.1 RPC要求受信およびRPC応答送信時のタイムアウト
TP1インバウンドアダプタでは,RPC要求受信およびRPC応答送信時のタイムアウトを設定できます。これにより,ネットワークの障害やOpenTP1の障害などが発生し,RPC通信が待ち状態となった場合に,通信タイムアウトが発生することで障害を検知できます。
また,TP1インバウンドアダプタではMessage-driven Bean(サービス)の実行時間タイムアウトも設定できます。これにより,業務処理で無限ループやデッドロックが発生した場合などに,実行時間タイムアウトによって強制的に業務処理を終了できます。
タイムアウトが設定できるポイントとタイムアウトの有効範囲を次の図に示します。
次に,この図のタイムアウトが設定できるポイントでのタイムアウトの設定方法について説明します。
- 〈この項の構成〉
(1) OpenTP1での設定
図4-19の1のポイントと7のポイントのタイムアウトの設定は,OpenTP1で実施します。タイムアウトの設定方法を次の表に示します。
図中番号 |
設定項目 |
設定ファイル |
説明 |
---|---|---|---|
1 |
RPC最大応答待ち時間 |
ユーザサービス定義※ (watch_time) |
RPC要求を送信してからサービスの応答が返るまでの待ち時間を秒単位で指定します。 |
7 |
TCP受信タイムアウト |
ユーザサービス定義※ (ipc_header_recv_time) |
データを受信してから通信制御用のデータを受信するまでのタイムアウト時間を秒単位で指定します。 |
(2) アプリケーションサーバの実行環境での設定
図4-19の2のポイントから6のポイントまでのタイムアウトの設定は,アプリケーションサーバの実行環境で実施します。タイムアウトの設定方法を次の表に示します。
図中番号 |
設定項目 |
設定ファイル※1 |
説明 |
---|---|---|---|
2 |
RPC要求の受信タイムアウト |
Connector属性ファイル (rpc_receive_timeoutプロパティ) |
OpenTP1から最初の要求電文を受信し始めてから,すべての要求電文の受信を完了するまでのタイムアウト時間を秒単位で指定します。なお,すべての要求電文を受信する前にコネクションが切断されたRPC要求もタイムアウトの対象に含まれます※2。 |
3 |
TCP受信タイムアウト |
Connector属性ファイル (tcp_receive_timeoutプロパティ) |
要求電文の受信(read)を開始してから完了するまでのタイムアウト時間を秒単位で指定します。 |
4 |
サービス実行タイムアウト※3 |
cosminexus.xml (<ejb-method-observation-timeout>タグ) |
Message-driven Bean(サービス)の実行時間を秒単位で指定します。 |
cosminexus.xml (<method-observation-recovery-mode>タグ) |
「thread」を指定します。 |
||
5 |
TCP送信コネクション確立タイムアウト |
Connector属性ファイル (connection_timeoutプロパティ) |
電文を送信する際,新たにコネクションを接続する場合のコネクション確立処理のタイムアウト時間※4を秒単位で指定します。 |
6 |
TCP送信タイムアウト |
Connector属性ファイル (tcp_send_timeoutプロパティ) |
応答電文の送信(write)を開始してから完了するまでのタイムアウト時間を秒単位で指定します。 |