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