Hitachi

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


4.14.2 トランザクションに関するタイムアウト

TP1インバウンドアダプタでは,トランザクションを開始してから決着処理を開始するまでのタイムアウトを設定できます。タイムアウトを設定しておくことで,ネットワークの障害やOpenTP1の障害などが発生して,トランザクションが決着できない場合に,自動でロールバックできます。

OpenTP1での設定,およびトランザクションに関するタイムアウトの有効範囲と設定方法を次に示します。

図4‒20 トランザクションに関するタイムアウトの有効範囲

[図データ]

〈この項の構成〉

(1) OpenTP1での設定

図4-20の1のポイントから3のポイント,および6のポイントのタイムアウトの設定は,OpenTP1で実施します。タイムアウトの設定方法を次の表に示します。

表4‒27 OpenTP1でのタイムアウトの設定方法

図中番号

設定項目

設定ファイル

説明

1

トランザクション完了限界時間

ユーザサービス定義

(trn_completion_limit_time)

トランザクションの開始から終了までの時間を指定します。

2

トランザクションブランチ限界経過時間

ユーザサービス定義

(trn_expiration_time)

トランザクションの開始から同期点処理を開始するまでの時間を指定します。

3

RPC最大応答待ち時間

ユーザサービス定義

(watch_time)

RPC要求を送信してからサービスの応答が返るまでの待ち時間を秒単位で指定します。

6

トランザクション同期点処理時の最大通信待ち時間

ユーザサービス定義

(trn_watch_time)

トランザクションの同期点処理で,トランザクションブランチ間の通信の受信待ち時間を指定します。

注 タイムアウトが発生した場合,dc_rpc_call関数にエラーが返されます。タイムアウトが発生した場合のTP1インバウンドアダプタのRPCエラー応答の詳細については,「4.17 TP1インバウンドアダプタで発生するRPCエラー応答」を参照してください。

注※ ユーザサービス定義の詳細については,マニュアル「OpenTP1 システム定義」のユーザサービス定義の説明を参照してください。

(2) アプリケーションサーバの実行環境での設定

図4-20の4のポイントおよび5のポイントのタイムアウトの設定は,アプリケーションサーバの実行環境で実施します。タイムアウトの設定方法を次の表に示します。

表4‒28 アプリケーションサーバの実行環境でのタイムアウトの設定方法

図中番号

設定項目

設定ファイル※1

説明

4

トランザクションタイムアウト時間

cosminexus.xml

(<ejb-transaction-timeout>タグ)

アプリケーションサーバ内でのトランザクション開始からトランザクション決着処理開始までの時間を指定します。

J2EEサーバ用ユーザプロパティファイル

(ejbserver.jta.TransactionManager.defaultTimeOut)

5

サービス実行タイムアウト※2

cosminexus.xml

(<ejb-method-observation-timeout>タグ)

Message-driven Bean(サービス)の実行時間を秒単位で指定します。

cosminexus.xml

(<method-observation-recovery-mode>タグ)

「thread」を指定します。

注 タイムアウトが発生した場合,エラーメッセージが出力されます。また,dc_rpc_call関数にエラーが返されます。タイムアウトが発生した場合のTP1インバウンドアダプタのRPCエラー応答の詳細については,「4.17 TP1インバウンドアダプタで発生するRPCエラー応答」を参照してください。

注※1 cosminexus.xmlの詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「2. アプリケーション属性ファイル(cosminexus.xml)」を参照してください。なお,J2EEサーバ用ユーザプロパティファイルについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.3 usrconf.properties(J2EEサーバ用ユーザプロパティファイル)」を参照してください。

注※2 サービス実行タイムアウトは,アプリケーションサーバのメソッドキャンセル機能を使用します。メソッドキャンセル機能の詳細は,マニュアル「アプリケーションサーバ 機能解説 運用/監視/連携編」の「5.3.2 J2EEアプリケーション実行時間の監視とは」を参照してください。