9.3.2 トランザクションタイムアウトを設定する
ここでは,トランザクションタイムアウトの設定について説明します。トランザクションタイムアウトは,データベースシステムなどEISとのトランザクションに設定します。DB Connectorを使用してデータベースにアクセスするときのトランザクションタイムアウトについて説明します。
トランザクションタイムアウトを設定する場合は,システム全体のタイムアウトのうち,バッチサーバとデータベースのトランザクションについて意識する必要があります。
トランザクションタイムアウトが発生すると,アプリケーションサーバによって,次の処理が実行されます。
-
実行中のトランザクションはロールバックされます。
-
トランザクションに参加しているコネクションはクローズされ,コネクションプールから削除されます。
- ポイント
-
トランザクションの管理方法はBMTになります。トランザクションのタイムアウトは,usrconf.propertiesまたはJTAのAPI(javax.transaction.UserTransaction#setTransactionTimeoutメソッド)に指定できます。
usrconf.propertiesの定義は,プロセス全体に影響します。APIに指定したタイムアウトは,APIを発行したトランザクションの範囲だけに影響します。また,APIの指定は,usrconf.propertiesの定義よりも優先されます。
このため,プロセス全体に設定したい標準的な値をusrconf.propertiesに定義して,呼び出す業務によって細かく設定したい値は適宜APIを使用して設定することをお勧めします。
トランザクションタイムアウトが発生した場合,バッチアプリケーションに例外は通知されません。ただし,メッセージKDJE31002-Wがログファイルとバッチサーバのコンソールに出力されます。また,トランザクションタイムアウトが発生したあとで,バッチアプリケーションから該当するトランザクションを使用してJTAインタフェースまたはJDBCインタフェースを使用しようとすると,例外が通知されます。