6.4.3 トランザクションの強制終了
通信障害が発生してトランザクションを強制決着すると,トランザクションブランチ間の連絡が完了するまでトランザクションを終了できません。通信障害が長時間回復する見込みのない場合には,トランザクションを強制終了できます。この場合,-fオプション指定のeetrncmtもしくはeetrnrbkコマンド,またはeetrnfgtコマンドを使用します。
-fオプションを指定したeetrncmt,またはeetrnrbkコマンドを実行すると,eetrnlstrコマンドで表示したトランザクションの状態がREADY(p),READY(d)またはREADY(i)のトランザクションを,強制的にコミット,またはロールバックします。この場合,該当するトランザクションブランチの決着結果を,同一グローバルトランザクション内のほかのトランザクションブランチに通知できないことがあります。そのため,同一グローバルトランザクション内のすべてのトランザクションブランチを,同一の方法で決着できなくなることがあります。
-fオプションを指定しないeetrncmt,またはeetrnrbkコマンドを実行したあと,トランザクションを強制終了したい場合は,eetrnfgtコマンドを使用します。eetrnfgtコマンドを実行すると,eetrnlstrコマンドで表示したトランザクションの第1状態および第2状態がHEURISTIC_FORGETTING(p),HEURISTIC_FORGETTING(d)またはHEURISTIC_FORGETTING(i)のトランザクションを,強制的に終了します。この場合も,該当するトランザクションブランチの決着結果を,同一グローバルトランザクション内のほかのトランザクションブランチに通知できないことがあります。そのため,同一グローバルトランザクション内のすべてのトランザクションブランチを,同一の方法で決着できなくなることがあります。
トランザクションを強制終了すると,リソースマネジャが使用していた資源が解放されるので,ほかのUAPから使用できるようになります。