• 検索結果がありません。

OpenTP1 との関連(XA インタフェースを使用する場 合)

ドキュメント内 HiRDB V9 XDM/RD E2接続機能 (ページ 58-71)

1. スレッド 1 で表 1 を更新 2. スレッド 2 で表 2 を更新

3.4  他プログラムプロダクトとの関連

3.4.1  OpenTP1 との関連(XA インタフェースを使用する場 合)

X/Open

に準拠した

API

を使用して,OLTP環境でリソースマネジャとして

XDM/RD E2

を使用できます。

このとき,OLTPシステムは

XDM/RD E2

HiRDB

サーバとみなして動作します。し たがって,HiRDBの関連マニュアルをお読みになる場合は,「HiRDB」を「XDM/RD

E2」に置き換えてお読みください。

(1) 必要となるプログラムプロダクトのバージョン

X/Open

に準拠した

API

を使用して,XDM/RD E2に接続する場合に必要な

VOS3

のプ ログラムプロダクトのバージョンを次に示します。

XDM/RD E2:06-03

以降

DB

コネクションサーバ:03-02以降

上記のプログラムプロダクトに関連するプログラムプロダクトのバージョンについては,

上記プログラムプロダクトのマニュアルを参照してください。

(2) VOS3 のプログラムプロダクトの定義

X/Open

に準拠した

API

を使用して,XDM/RD E2に接続する場合に必要な

VOS3

のプ ログラムプロダクトの定義を次に示します。詳細については,各プログラムプロダクト のマニュアルを参照してください。

(a)XDM/RD E2

OLTP

システムが

OpenTP1

の場合,XDM/RD E2に接続できるユーザ数を一つ多く定義 します。

(b)DBコネクションサーバ

二相コミット機能を使用する定義。

OLTP

システムが

OpenTP1

の場合,DBコネクションサーバに接続できる

TCP

コネ クション数を一つ多く定義します。

3. 

UAPの設計

(3) UAP 作成上の留意事項

(a)

SQL

関連の注意事項 使用できない

SQL

X/Open

に準拠した

API

を使用している

UAP

からは,次に示す

SQL

は使用できま せん。

定義系

SQL

PURGE TABLE

COMMIT

CONNECT

DISCONNECT

ROLLBACK

文 暗黙的ロールバック

X/Open

に準拠した

API

を使用している場合,SQL実行時に

XDM/RD E2

で暗黙的 ロールバック要因が発生すると,XDM/RD E2は自動的にロールバックします。

このため,暗黙的ロールバック要因が発生した場合は,XDM/RD E2以外の資源に 対する整合性を保つために,速やかにトランザクションのロールバックをする必 要があります。

暗黙的ロールバック要因が発生すると,XDM/RD E2はロールバック以外の要求を 実行できなくなります。

XDM/RD E2

で暗黙的ロールバック要因が発生したかどうかは,SQL連絡領域

(SQLCA)の

SQLWARN6

を参照して判断してください。暗黙的ロールバック要因 が発生している場合,'W'が設定されています。なお,暗黙的ロールバック要因が発 生した場合は,SQLCODEは負の値となります。

注※

ここで説明しているロールバックとは,トランザクションマネジャが用意する ロールバック関数などの発行を示すものであり,SQLの

ROLLBACK

文ではあ りません。

(b) マルチスレッド用のライブラリに関する注意事項

一つのトランザクションから

XDM/RD E2

に対して複数のスレッドを使用して別々に接 続できません。マルチスレッド環境での

XA

接続は未サポートです。したがって,一つ のトランザクションから同時に実行できるスレッドは一つであり,同一トランザクショ ン内で複数のスレッドを使用して

SQL

文を同時に実行できません。

(4) HiRDB XA ライブラリ

X/Open XA

インタフェースとは,分散トランザクション処理(DTP:Distributed

Transaction Processing)システムのトランザクションマネジャ(TM:Transaction

Manager)とリソースマネジャ(RM:Resource Manager)の接続インタフェースを規

定した

X/Open

の標準仕様です。X/Open XAインタフェースを使用すると,リソースマ

ネジャのトランザクション処理をトランザクションマネジャで制御できます。リソース マネジャのトランザクション処理をトランザクションマネジャで制御するには,リソー スマネジャが提供するライブラリとトランザクションマネジャが提供するライブラリを

UAP

にリンケージします。

XDM/RD E2

UAP

の処理をトランザクションマネジャで制御するために,HiRDBは

HiRDB XA

ライブラリを提供しています。HiRDB XAライブラリは,X/Open DTPソ フトウェア・アーキテクチャの

XA

インタフェースの仕様に準拠しています。

注※

XDM/RD E2

に接続する場合も,HiRDBサーバに接続する場合と同じ

HiRDB XA

ライブラリを使用します。

X/Open DTP

モデルでの

XDM/RD E2

の位置づけを次の図に示します。

3-4 X/Open DTP

モデルでの

XDM/RD E2

の位置づけ

(5) HiRDB XA ライブラリでサポートする機能

HiRDB XA

ライブラリでサポートする機能を次の表に示します。

ただし,XDM/RD E2をサーバとして使用する場合と

HiRDB

サーバを使用する場合で は,サポートする機能が異なります。

3. 

UAPの設計

3-3 HiRDB XA

ライブラリでサポートする機能

(凡例)

○:HiRDB XAライブラリでサポートしています。

×:HiRDB XAライブラリでサポートしていません。

注※

トランザクションの移行は使用できません。このため,HiRDBクライアント環境変 数の

PDXAMODE

オペランドには

0

を指定するか,PDXAMODEオペランドの指 定を省略してください。

(6) システムの構成例

OLTP

システムを使用したシステムの構成例を次の図に示します。

機能 説明 サポート有無

HiRDB サーバ

XDM/RD E2 サーバ トランザクション

の移行

トランザクションのコミット処理を,UAP

HiRDBにアクセスしたときと異なるサーバプロセ

スで実行する機能です。ここでいうUAPとは,

HiRDB XAライブラリを使用してHiRDBに接続す UAPのことです。

×

一相最適化 二相コミット制御を一相に最適化する機能です。 読み取り専用 プリペア要求でHiRDBのリソースが更新されてい

ない場合,トランザクションマネジャが二相目にコ ミット要求をしないで最適化する機能です。

動的トランザク ションの登録

UAPを実行する直前に,HiRDBが動的にトランザ クションを登録する機能です。

非同期XA呼び出

トランザクションマネジャが非同期にHiRDB XA ライブラリを呼び出す機能です。

× ×

複数接続機能 一つのUAPからXDM/RD E2に対して複数の

CONNECTを別々に実行する機能です。

X/Open XAインタフェース環境下での複数接続機 能については,マニュアル「HiRDB Version 9 UAP 開発ガイド」を参照してください。

3-5 OLTP

システムを使用したシステムの構成例

(7) トランザクションの移行

トランザクションの移行は,XDM/RD E2に接続する場合には使用できません。

このため,HiRDBクライアント環境変数の

PDXAMODE

オペランドには

0

を指定する か,PDXAMODEオペランドの指定を省略してください。

(a) トランザクションマネジャが

OpenTP1

の場合

XDM/RD E2

に接続する場合は,トランザクションの移行が使用できないため,

OpenTP1

のコミット最適化およびプリペア最適化は使用できません。

ただし,OpenTP1システムの状態によっては,トランザクションの移行を使用しなくて も,コミット最適化およびプリペア最適化を使用する指定(OpenTP1システム定義のト ランザクションサービス定義の

trnstring

オペランドに

-d

オプションを省略)ができま す。

OpenTP1

システム定義のトランザクションサービス定義の

trnstring

オペランドの指定

3. 

UAPの設計

OpenTP1

システムの状態の組み合わせ可否を次に示します。

-d

オプションは,TP1/Server Baseのバージョンが

03-03

以降のときに指定できま す。

注※

同一

OpenTP1

システム内では複数の

AP

でグローバルトランザクションを構成して おり,かつ複数の

AP

HiRDB XA

ライブラリとリンクしている場合は,trnstring オペランドに必ず

-d

オプションを指定してください。

trnstring

オペランドについては,マニュアル「OpenTP1 Version 7 分散トランザクショ ン処理機能 OpenTP1 システム定義」を参照してください。

コミット最適化およびプリペア最適化については,マニュアル「OpenTP1 Version 7 分 散トランザクション処理機能 OpenTP1 プログラム作成の手引」を参照してくださ い。

(8) トランザクションマネジャへの登録

OLTP

と連携するには,XDM/RD E2をトランザクションマネジャに登録する必要があ ります。XDM/RD E2をトランザクションマネジャに登録するには,OpenTP1の

trnlnkrm

コマンドを使用します。

XDM/RD E2

をトランザクションマネジャに登録するときには,次に示すどちらかの方 法を選択してください。

動的登録方法

静的登録方法

なお,一つのトランザクションマネジャに対して,動的登録方法と静的登録方法を混在

条件 組み合わせ可否

trnstringオペランドの指定 OpenTP1システムの状態

-dオプションを省略 同一OpenTP1システム内では一つのAPだけでグ ローバルトランザクションを構成している場合

可能

同一OpenTP1システム 内では複数のAPでグ ローバルトランザクショ ンを構成している場合

一つのAPだけが HiRDB XAライブラリ とリンクしているとき

可能

複数のAPHiRDB XAライブラリとリンク しているとき

不可能

-dオプションを指定 該当しない 可能

して使用できません。

(a) 動的登録方法とは

XDM/RD E2

をトランザクションマネジャに動的登録すると,トランザクション内で最 初の

SQL

文を発行したときに,UAPがトランザクションマネジャの制御下に入ります。

UAP

XDM/RD E2

を含む複数のリソースマネジャをアクセスする場合,または

UAP

XDM/RD E2

をアクセスするとは限らない場合などに,トランザクションマネジャか らの

XDM/RD E2

に対するトランザクション制御のオーバヘッドを削減できます。

(b) 静的登録方法とは

XDM/RD E2

をトランザクションマネジャに静的登録すると,UAPが

SQL

文の発行に 関係なく,トランザクションの開始時に常にトランザクションマネジャの制御下に入り ます。

トランザクションマネジャが

OpenTP1

の場合,UAPと

XDM/RD E2

とのコネクション が切断されたとき(ユニットの異常終了またはサーバプロセスの異常終了などのとき)

に,OpenTP1にはトランザクション開始時に再接続をする機能があるため,UAPの再 起動が不要になります。

(c) 動的登録方法と静的登録方法の違い

動的登録方法と静的登録方法の違いを次の表に示します。

3-4 動的登録方法と静的登録方法の違い

注※

1

トランザクションマネジャが

OpenTP1

のときに限ります。

差異のポイント 動的登録方法 静的登録方法

トランザクション開始時 管理しない コネクション確立中かどうか の確認

トランザクションマネジャ制 御下でのトランザクションの 管理を開始

トランザクション内で最初 SQL発行時

トランザクションマネジャの制御 下での管理を開始

XDM/RD E2のトランザクション 開始

SQL文処理

XDM/RD E2のトランザク ション開始

SQL文処理

トランザクション処理中の トランザクションマネジャ XDM/RD E2間の通信 回数

SQL文数+コミット処理通信回数 SQL文数+コミット処理通信回

数+1(トランザクション開始処

理用の通信分)

トランザクションマネジャ XDM/RD E2間のコネ クションが,途中で切断し たときの再接続方法1

次回のトランザクション開始時に自 動的に再接続2

次回のトランザクション開始時 に自動的に再接続3

ドキュメント内 HiRDB V9 XDM/RD E2接続機能 (ページ 58-71)