2.4.6 DBMSとのトランザクション連携の仕組み
DABroker for .NET Frameworkを使用してDBMSとトランザクション連携をする場合,OpenTP1はDBMSに対するトランザクションの開始,終了などの通知に,XAインタフェースを使用します。
(1) SPP.NETとのトランザクション連携
SPP.NETとトランザクション連携をするときに通知されるXAインタフェースの発行例を次の図に示します。
|
-
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インタフェースの発行例を次の図に示します。
|
-
Rpc.Openメソッドを発行すると,トランザクション制御用のライブラリに指定したDBMSにxa_open関数を発行します。
-
Trn.Beginメソッドを発行すると,DBMSにxa_start関数を発行します。
-
Trn.Commitメソッドを発行すると,DBMSにxa_end関数,xa_prepare関数,xa_commit関数の順で関数を発行します。なお,この例ではトランザクションの最適化は考慮しません。
-
Rpc.Closeメソッドを発行すると,トランザクション制御用のライブラリに指定したDBMSにxa_close関数を発行します。