Hitachi

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


2.4.6 DBMSとのトランザクション連携の仕組み

DABroker for .NET Frameworkを使用してDBMSとトランザクション連携をする場合,OpenTP1はDBMSに対するトランザクションの開始,終了などの通知に,XAインタフェースを使用します。

〈この項の構成〉

(1) SPP.NETとのトランザクション連携

SPP.NETとトランザクション連携をするときに通知されるXAインタフェースの発行例を次の図に示します。

図2‒10 SPP.NETとトランザクション連携をするときに通知されるXAインタフェースの発行例

[図データ]

  1. SPP.NET実行コンテナから発行されたdc_rpc_open関数の延長で,トランザクション制御用のライブラリに指定したDBMSにxa_open関数を発行します。

  2. Trn.Beginメソッドを発行すると,DBMSにxa_start関数を発行します。

  3. Trn.Commitメソッドを発行すると,DBMSにxa_end関数,xa_prepare関数,xa_commit関数の順で関数を発行します。なお,この例ではトランザクションの最適化は考慮しません。

  4. SPP.NET実行コンテナから発行されたdc_rpc_close関数の延長で,トランザクション制御用のライブラリに指定したDBMSにxa_close関数を発行します。

(2) SUP.NETとのトランザクション連携

SUP.NETとトランザクション連携をするときに通知されるXAインタフェースの発行例を次の図に示します。

図2‒11 SUP.NETとトランザクション連携をするときに通知されるXAインタフェースの発行例

[図データ]

  1. Rpc.Openメソッドを発行すると,トランザクション制御用のライブラリに指定したDBMSにxa_open関数を発行します。

  2. Trn.Beginメソッドを発行すると,DBMSにxa_start関数を発行します。

  3. Trn.Commitメソッドを発行すると,DBMSにxa_end関数,xa_prepare関数,xa_commit関数の順で関数を発行します。なお,この例ではトランザクションの最適化は考慮しません。

  4. Rpc.Closeメソッドを発行すると,トランザクション制御用のライブラリに指定したDBMSにxa_close関数を発行します。