2.4.3 同期点取得

<この項の構成>
(1) コミット
(2) ロールバック

(1) コミット

トランザクションが正常終了したときの同期点取得(コミット)は,SPP.NETまたはSUP.NETからTrnクラスのCommitメソッドを呼び出して行います。

グローバルトランザクションは,すべてのトランザクションブランチが正常に終了したことで正常終了となります。

(a) 連鎖,非連鎖モードでのコミット

トランザクション処理の同期点取得には,次の2種類があります。

(b) コミット要求メソッドを呼び出さない場合の処理

次の場合,トランザクションはロールバックされます。

(2) ロールバック

(a) TP1/Serverの処理でのエラーの場合

トランザクションでエラーが発生すると,TrnクラスのCommitメソッドで例外が発生します。そのトランザクションは部分回復対象としてロールバックされます。グローバルトランザクション内のどれか一つのトランザクションブランチでエラーが発生した場合でも,グローバルトランザクション全体がロールバックの対象となります。

このときTP1/Serverは,トランザクションブランチをロールバック対象とみなして,部分回復処理をします。

(b) ロールバック要求メソッドを呼び出す場合

トランザクションをSPP.NETまたはSUP.NETの判断でロールバックしたいときは,SPP.NETまたはSUP.NETからロールバック要求のメソッドを呼び出します。

トランザクション処理のロールバックには,次の2種類があります。