2.4.6 DBMSとのトランザクション連携の仕組み
(1) SPP.NETとのトランザクション連携
SPP.NETとトランザクション連携をするときに通知されるXAインタフェースの発行例を次の図に示します。
図2-10 SPP.NETとトランザクション連携をするときに通知されるXAインタフェースの発行例
![[図データ]](figure/zu030090.gif)
- SPP.NET実行コンテナから発行されたdc_rpc_open関数の延長で,トランザクション制御用のライブラリに指定したDBMSにxa_open関数を発行します。
- Trn.Beginメソッドを発行すると,DBMSにxa_start関数を発行します。
- Trn.Commitメソッドを発行すると,DBMSにxa_end関数,xa_prepare関数,xa_commit関数の順で関数を発行します。なお,この例ではトランザクションの最適化は考慮しません。
- SPP.NET実行コンテナから発行されたdc_rpc_close関数の延長で,トランザクション制御用のライブラリに指定したDBMSにxa_close関数を発行します。
(2) SUP.NETとのトランザクション連携
SUP.NETとトランザクション連携をするときに通知されるXAインタフェースの発行例を次の図に示します。
図2-11 SUP.NETとトランザクション連携をするときに通知されるXAインタフェースの発行例
![[図データ]](figure/zu030100.gif)
- Rpc.Openメソッドを発行すると,トランザクション制御用のライブラリに指定したDBMSにxa_open関数を発行します。
- Trn.Beginメソッドを発行すると,DBMSにxa_start関数を発行します。
- Trn.Commitメソッドを発行すると,DBMSにxa_end関数,xa_prepare関数,xa_commit関数の順で関数を発行します。なお,この例ではトランザクションの最適化は考慮しません。
- Rpc.Closeメソッドを発行すると,トランザクション制御用のライブラリに指定したDBMSにxa_close関数を発行します。