Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Client for .NET Framework 使用の手引


2.3.3 トランザクションの開始と同期点取得

CUP.NETからTP1ClientクラスのBeginメソッドを呼び出して,トランザクションを開始します。

Beginメソッドを呼び出してから同期点取得(コミット)までが,グローバルトランザクションの範囲となります。Beginメソッドを呼び出したあと,そのグローバルトランザクションの中で新たなBeginメソッドは呼び出せません。

CUP.NETからSPP.NETまたはSPPに対してRPC要求を実行すると,CUP.NETはrapサーバでルートトランザクションブランチを生成し,呼び出したSPP.NETまたはSPPはトランザクションブランチとして実行されます。

なお,Beginメソッドの呼び出しから,RPC要求,同期点取得の間は,同一のTP1Clientオブジェクトである必要があります。

トランザクションとRPCの関係を次の図に示します。

図2‒8 トランザクションとRPCの関係

[図データ]

  1. TP1Clientクラスのインスタンスを生成します。

  2. TP1ClientクラスのBeginメソッドを呼び出してトランザクションを開始します。

    rapサーバは,dc_trn_begin関数を発行し,rapサーバのプロセスからグローバルトランザクションを開始します。

    TP1Clientのインスタンスはrapサーバのプロセスと1対1で結び付けられます。

  3. TP1ClientクラスのCallメソッドを呼び出してSPP.NETまたはSPPにサービスを要求します。コミットまたはロールバックが発生するまで,rapサーバとSPP.NETまたはSPPは関連づけられます。

  4. TP1ClientクラスのCommitメソッドを呼び出して非連鎖モードのコミットをします。

    この時点でTP1Clientクラスのインスタンス,rapサーバのプロセス,および要求先のSPP.NETまたはSPPとの関連づけはなくなります。