Hitachi

DABroker


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

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

〈この項の構成〉

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

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

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

  • HiRDB

  • ORACLE

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

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

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

[図データ]

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

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

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

[図データ]

  • TPBrokerの環境設定

    TPBrokerのインストールディレクトリのパスなどを設定します。

  • OTSのセットアップ

    TPBrokerと実行環境をセットアップします。

    次のコマンドを使用します。

    • tssetupコマンド

    • admsetupコマンド

    これによって,OTSの実行環境とadmデーモンの実行環境が作成されます。

  • 環境変数の登録

    使用するDBMSごとに,DBMSのホームディレクトリのパスなどの環境変数を登録します。

    環境変数の登録方法については,各DBMSのマニュアルを参照してください。

  • DBMSの登録

    TPBrokerにDBMSを登録します。

    次のコマンドを使用します。

    • tslnkrmコマンド

  • システム定義への登録

    OTSのシステム定義にDBMSを登録します。

    次のコマンドを使用します。

    • tskeycreateコマンド

    • tsdefvalueコマンド

  • XAスイッチリストの作成

    TPBrokerではOTS機能を実現するために,DBMSのXAインタフェースを利用します。XAインタフェースを利用する場合,使用するデータベース用にリソースマネージャのXAスイッチリストを作成します。

    次のコマンドを使用します。

    • tsmkobjコマンド

  • TPBrokerの開始

    上記の準備が完了したら,TPBrokerを開始します。

    次のコマンドを使用します。

    • admstartコマンド

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

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

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

  • ORACLE

  • HiRDB

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

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

[図データ]

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

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

  • Java TMの環境設定

  • DBMSのXA接続環境設定

  • DABroker for Java Version 2とExtensionのJTA環境設定

  • JNDI環境設定

  • DABrokerの環境設定

  • 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のクラスを使用します。