3.1.3 トランザクションのコミットとロールバック
トランザクションは,成功または失敗することによって終了します。トランザクションが成功すること,つまり整合性を保って資源を更新することを,トランザクションのコミットといいます。トランザクションがコミットしたときに初めて,グローバルトランザクション内のすべてのトランザクションブランチでの資源の更新が有効になります。トランザクションをコミットするかどうか最終的に決定するトランザクション処理の区切りを,同期点といいます。資源は,同期点で更新します。
トランザクションが失敗して,トランザクションで更新するはずの資源の状態を,トランザクション開始直前の状態に戻すことを,トランザクションのロールバックといいます。トランザクションをコミットできなかった場合や,処理の不整合を検出した場合には,これまでの処理をロールバックで取り消して,データの整合性を保ちます。トランザクションがロールバックした要因はログに取得できます。ロールバック要因をログに取得するかどうか,トランザクションサービス定義のtrn_rollback_information_putオペランドで指定してください。
OpenTP1はトランザクションブランチごとに経過時間を監視しています。経過時間を過ぎてもトランザクションが終了しないときには,トランザクションをロールバックします。経過時間の監視については,マニュアル「OpenTP1 システム定義」を参照してください。
トランザクションのロールバックを次の図に示します。