2.2.9 未決着トランザクションの完了処理
アプリケーションで未決着となったトランザクションの完了処理は,Connector .NETが生成するバックグラウンドスレッドが行います。このバックグラウンドスレッドは,アプリケーションドメインでトランザクションとして扱われる最初のサービス要求時に一度だけ生成されます。未決着トランザクションの完了処理の流れを次の図に示します。
|
アプリケーションからの処理要求(コミット準備,コミット,ロールバック処理)に失敗した場合,バックグラウンドスレッドはアプリケーションで失敗した処理要求を自動的に完了させます。バックグラウンドスレッドでトランザクションの完了処理に失敗した場合,バックグラウンドスレッドは一定間隔で再度トランザクションの完了処理を試みます。この間隔は,<distributedTransaction>要素のrecoverRetryInterval属性で指定します。
OpenTP1が障害中などの理由でトランザクションの完了処理に失敗した場合は,失敗するたびにログメッセージが出力されます。ログレベルを3に設定している場合は,トランザクションの完了処理を再試行するたびにコネクションの取得および解放に関するログメッセージが出力されます。そのため,MSDTC連携機能を使用する場合は,アプリケーションの構成定義の<log>要素のfileSize属性に十分大きな値を指定してください。