1.2.4 分散トランザクション処理

TPBrokerのOTS(Object Transaction Services)機能,Java JTS機能を提供するトランザクションマネージャ(Java TM)又はOpenTP1 for .NET Frameworkを利用することで,DABrokerからトランザクションを制御することなく,複数異種のデータベースに対して,X/Open DTPモデルXAインタフェースを使用した分散トランザクションを実現できます。

<この項の構成>
(1) OTSを使った分散トランザクション処理
(2) Java JTSを使った分散トランザクション処理
(3) OpenTP1 for .NET Frameworkを使った分散トランザクション処理

(1) OTSを使った分散トランザクション処理

(a) OTSを使った分散トランザクション処理の概要

接続先が次のDBMSの場合,TPBrokerのOTS機能を利用することで分散トランザクションを実現できます。

また,TPBrokerにトランザクションの制御を任せることで,DABrokerのデータベースアクセス処理と,TPBrokerと連携する他製品のリソースアクセス処理とを,一つのグローバルトランザクションとして同期制御できるようになります。

複数異種の分散データベースへのアクセスの例を図1-4に示します。

図1-4 複数異種の分散データベースへのアクセスの例(OTSを使った分散トランザクション処理)

[図データ]

(b) OTSを利用するまでの手順

OTSを使って分散トランザクション処理を実現するには,次の手順で準備しておく必要があります。各手順の詳細については,マニュアル「トランザクショナル分散オブジェクト基盤 TPBroker ユーザーズガイド」を参照してください。OTSを利用するまでの手順を,図1-5に示します。

図1-5 OTSを利用するまでの手順

[図データ]

(2) Java JTSを使った分散トランザクション処理

(a) Java JTSを使った分散トランザクション処理の概要

接続先が次のDBMSの場合,Java JTS機能を提供するトランザクションマネージャ(Java TM)を利用することで分散トランザクションを実現できます。

また,Java TMにトランザクションの制御を任せることで,DABrokerのデータベースアクセス処理と,Java TMと連携する他製品のリソースアクセス処理とを,一つのグローバルトランザクションとして同期制御できるようになります。複数異種の分散データベースへのアクセスの例を図1-6に示します。

図1-6 複数異種の分散データベースへのアクセスの例(Java JTSを使った分散トランザクション処理)

[図データ]

(b) Java JTSを利用するまでの手順

Java JTSを使って分散トランザクション処理を実現するには,次の手順で準備しておく必要があります。各手順の詳細については,Java TMが提供するドキュメントを参照してください。

(3) OpenTP1 for .NET Frameworkを使った分散トランザクション処理

DABroker for .NET Frameworkは,OpenTP1 for .NET Frameworkとトランザクション連携をすることができます。OpenTP1 for .NET Frameworkと連携し,XAインタフェースのグローバルトランザクションに参加することで,OpenTP1システムに登録された複数のDBMS間や,DBMSとほかのリソースマネジャとの間で,同期を取ったトランザクション制御(グローバルトランザクションの制御)ができます。

OpenTP1 for .NET Frameworkとのトランザクション連携の概要を図1-7に示します。

図1-7 OpenTP1 for .NET Frameworkとのトランザクション連携の概要

[図データ]

OpenTP1 for .NET Frameworkと連携して,XAインタフェースのグローバルトランザクションに参加する場合,DBMSへのアクセス部分はDABroker for .NET Frameworkを使用し,トランザクション制御の部分は,OpenTP1 for .NET Frameworkを使用します。

アプリケーションはOpenTP1に対してトランザクションの開始や決着を要求します。このとき,DABroker for .NET FrameworkのDABTransactionクラスは使用しないで,OpenTP1 for .NET Frameworkが提供するクラスを使用します。グローバルトランザクションの制御対象となっているデータベースに対して検索処理や更新処理をする場合は,DABroker for .NET Frameworkのクラスを使用します。