Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option 使用の手引


6.4.2 トランザクションの強制決着

eetrnlstrコマンドで表示したトランザクションの第1状態および第2状態がREADY(p),READY(d)またはREADY(i)となり,その状態が長く続く場合は,グローバルトランザクションを構成している各トランザクションブランチが,何らかの要因(通信障害など)でトランザクションを決着できない状態になったと考えられます。この場合,TP1/EEがリトライしてトランザクションを決着させます。TP1/EEのリトライを待てない場合は,ユーザが運用コマンドを入力して,該当するトランザクションブランチを強制決着(ヒューリスティック決着)できます。ルートトランザクションブランチがコミットしている場合は,eetrncmtコマンドを実行してトランザクションブランチをコミットします。ルートトランザクションブランチがロールバックしている場合は,eetrnrbkコマンドを実行してトランザクションブランチをロールバックします。ルートトランザクションブランチがコミットしているか,ロールバックしているかは,eetrnlstrコマンドでトランザクションの状態を表示して確認してください。

同一グローバルトランザクション内でトランザクションブランチが別計算機上に分散している場合でも,運用コマンドは計算機ごとに入力する必要があります。その場合は,すべてのトランザクションブランチを同一の方法(コミットするか,ロールバックするか)で決着させてください。

eetrncmtコマンドを実行すると,eetrnlstrコマンドで表示したトランザクション第1状態はHEURISTIC_COMMIT状態になります。eetrnrbkコマンドを実行すると,HEURISTIC_ROLLBACK状態になります。その後,eetrncmtコマンド,またはeetrnrbkコマンドによる処理が終了するまでの一時的な経過状態として,HEURISTIC_FORGETTING状態になります。