ページの先頭行へ戻る
Interstage Application Server OLTPサーバ運用ガイド
Interstage

I.15.4 グローバルトランザクション連携の処理

グローバルトランザクション連携は、データベース連携サービスを利用して分散オブジェクト環境でのトランザクション処理を実現しています。
グローバルトランザクション連携は、複数のデータベースと連携し、同時更新が可能であり、それぞれのデータベースの整合性を保ちます。また、別サーバシステムにデータベースを配置し、グローバルトランザクション連携することも可能です。
データベース連携サービスでは、分散オブジェクト環境におけるCORBA準拠のトランザクション管理を行っています。データベース連携サービスは、以下の2つから構成されています。

以下の図に、クライアント側でトランザクションを制御する場合のグローバルトランザクション連携について例を示します。データベースは、複数のサーバマシンに配置し運用しています。



データベース連携サービスを利用してグローバルトランザクションを行う場合、以下の作業を行います。

なお、グローバルトランザクション連携では、クライアントまたはサーバ側でトランザクションを制御できます。


クライアントアプリケーションの作成

グローバルトランザクション連携で必要となる作業手順について説明します。なお、アプリケーション作成の詳細は、「アプリケーション作成ガイド(データベース連携サービス編)」で説明されています。必要な作業は、以下のとおりです。

  1. プログラムの記述

  2. 実行モジュールの作成


1.プログラムの記述

プログラムには、データベース連携サービスにトランザクション処理を依頼するために、トランザクションの開始から終了までの処理を記述します。

2.実行モジュールの作成

クライアントアプリケーションに、データベース連携サービスが提供するクライアントアプリケーション用のライブラリをリンクします。


リソース管理プログラムの作成

リソース管理プログラムでは、トランザクションの完了処理(commit/rollback)を行います。リソース管理プログラムは、データベース管理システムごとに作成します。以下に、リソース管理プログラムの作成手順を示します。


データベース管理システムは以下のとおりです。

Oracle、Symfoware/RDBまたはSQL Server

Oracle、またはSymfoware/RDB



作業手順について、以下の内容で説明します。

  1. リソース管理プログラムのロードモジュールの作成

  2. リソース定義ファイルの作成

  3. リソース管理プログラムのCORBAサービスへの登録


1.リソース管理プログラムのロードモジュールの作成

使用するデータベース管理システムごとに、otslinkrscコマンドを使用して、以下のライブラリよりリソース管理プログラムを作成します。

  • XA連携用プログラム(XAインタフェースとの連携用)

  • データベース管理システムが提供するデータベースライブラリ

以下の図に、otslinkrscコマンドを使用して、リソース管理プログラムを作成する流れを示します。



なお、データベースライブラリについては、使用するデータベースのマニュアルを参照してください。

2.リソース定義ファイルの作成

リソース定義ファイルとは、リソース管理プログラムより参照されるファイルです。データベースの種別名やデータベースのオープン・クローズ情報を記述し、使用するデータベースごと(Oracleの場合はインスタンスごと)に作成します。リソース定義ファイルは、「OTS用のリソース定義ファイル」を作成してください。
リソース定義ファイルの書式は、「アプリケーション作成ガイド(データベース連携サービス編)」で説明されています。

注意


V3系以前のバージョンで使用していたリソース定義ファイルはそのままでは使用することができません。移行方法については、「移行ガイド」で説明されています。

3.リソース管理プログラムのCORBAサービスへの登録

リソース管理プログラムの作成後、インプリメンテーションリポジトリおよびネーミングサービスに登録します。otssetrscコマンドに、リソース定義ファイル名を指定して登録します。

注意

otssetrscコマンドは、リソース管理プログラムを起動するマシン上で実行してください。


サーバアプリケーションの作成

グローバルトランザクション連携で必要となる、作業手順について説明します。以下の図に、作業手順を示します。



作業手順について、以下の内容で説明します。

  1. プログラムの記述

  2. 実行モジュールの作成

  3. APMの作成


1.プログラムの記述

プログラムには、データベースへの処理(ユーザサービス処理部)のみ記述します。

2.実行モジュールの作成

以下のライブラリやプログラムなどを用意し、コンパイルおよびリンクを行ってトランザクションアプリケーション(実行モジュール)を作成します。

  • サーバアプリケーション用プログラム(1で作成したプログラム)

  • スケルトン

  • サーバ管理ライブラリ(トランザクション管理用のライブラリ)

  • データベースライブラリ

以下の図に、トランザクションアプリケーションを作成する流れを示します。



3.APMの作成

APMは、tdlinkapmコマンドで作成します。ただし、C++のサーバアプリケーションを利用する場合は、APMの作成は不要です。tdlinkapmコマンドを実行すると、トランザクションアプリケーション作成時に用意したXA連携用プログラムと、XA連携時に必要なデータベース管理システムが提供するライブラリをリンクしてAPMを作成します。
なお、データベース管理システムが提供するライブラリについては、使用するデータベース管理システムのマニュアルを参照してください。

以下の図に、tdlinkapmコマンドからAPMを作成する流れを示します。



ワークユニットの定義

通常のワークユニット定義に加え、グローバルトランザクション連携の場合に必要となるワークユニットの定義項目を示します。

定義項目

設定内容

APM

名前

作成したAPM名を指定

制御オプション

環境変数

アプリケーションおよび出口プログラムが動作する時に使用する環境変数

アプリケーションライブラリパス

アプリケーションおよび出口プログラムの実行ファイルが格納されているディレクトリのパス

リソースマネージャ情報

リソース定義名

ワークユニットが使用するOTSシステムに登録されたリソース定義名を指定
注) otssetrscを利用して登録したリソース定義に記載されているリソース定義名(NAME)を指定します。

データベースシステム名

ワークユニットが使用するデータベースシステム名を指定(最大32個まで指定可)
注) otssetrscを利用して登録したリソース定義に記載されているリソースマネージャ名(RMNAME)を指定します。


注意


データベース連携サービスを利用する場合、V3系以前のバージョンで使用していたワークユニット定義はそのままでは使用することができません。移行方法については、「移行ガイド」を参照してください。


1つのワークユニットから複数のデータベースと連携する場合

1つのワークユニットから複数のデータベースと連携する場合、ワークユニット定義の中で、データベースごとに[Resource Manager]セクションの項目を設定してアプリケーションを作成します。

複数のデータベースと連携する業務を1つのワークユニットにまとめることにより、データベースごとにワークユニットを分けてシステムを構築するより以下の点で効果があります。

ただし、以下の点に注意してください。

詳細については、「第5章 分散トランザクション機能の運用」で説明されています。