7.2.2 HiRDB XAライブラリ
X/Open XAインタフェースとは,分散トランザクション処理(DTP:Distributed Transaction Processing)システムのトランザクションマネジャ(TM:Transaction Manager)とリソースマネジャ(RM:Resource Manager)の接続インタフェースを規定したX/Openの標準仕様です。XAインタフェースを使用すると,リソースマネジャのトランザクション処理をトランザクションマネジャで制御できます。リソースマネジャのトランザクション処理をトランザクションマネジャで制御するには,リソースマネジャが提供するライブラリとトランザクションマネジャが提供するライブラリをUAPにリンケージします。
HiRDBのUAPの処理をトランザクションマネジャで制御するために,HiRDBはHiRDB XAライブラリを提供しています。HiRDB XAライブラリは,X/Open DTPソフトウェアアーキテクチャのXAインタフェースの仕様に準拠しています。
X/Open DTPモデルでのHiRDBの位置づけを次の図に示します。
なお,X/Open XAインタフェースを使用するUAPから回復不要FESに接続すると,SQLがエラーリターンします。クライアント環境定義のPDFESHOST及びPDSERVICEGRPを指定して,回復不要FESではないフロントエンドサーバに接続してください。
(1) HiRDB XAライブラリが提供する機能
HiRDB XAライブラリが提供する機能を次の表に示します。
機能 |
説明 |
---|---|
トランザクションのコミット処理をUAPがHiRDBにアクセスしたときと異なるプロセスで実行する機能です。ここでいうUAPとは,HiRDB XAライブラリを使用してHiRDBに接続するUAPのことです。 トランザクションの移行を使用するかどうかは,クライアント環境定義のPDXAMODEオペランドで指定します。トランザクションの移行については,「トランザクションの移行」を参照してください。 |
|
二相コミット制御を一相に最適化する機能です。 一相最適化を使用する場合,トランザクションの完了種別がトランザクションマネジャとHiRDBで一致しないことがあります。詳細については,「一相最適化に関する注意事項」を参照してください。 |
|
プリペア要求でHiRDBのリソースが更新されていない場合,トランザクションマネジャが二相目にコミット要求をしないで最適化する機能です。 |
|
UAPを実行する直前に,HiRDBが動的にトランザクションを登録する機能です。 |
|
一つのプロセスからHiRDBサーバに対して複数のCONNECTを別々に実行する機能です。X/Open XAインタフェース環境下での複数接続機能については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。 |
(2) マルチスレッド対応のXAインタフェース
マルチスレッド対応のXAインタフェースを利用すると,TPBroker for C++とHiRDBでOTS(Object Transaction Service)連携ができます。
なお,マルチスレッド用のライブラリはC言語又はC++言語でだけ使用できます。COBOL言語では使用できません。
マルチスレッド対応のXAインタフェースを使用するには専用のHiRDBクライアントライブラリをリンクしてください。バージョン05-06より前のHiRDBクライアントライブラリはマルチスレッドに対応していません。マルチスレッド用のライブラリは,既存のHiRDBクライアントが接続できるすべてのHiRDBサーバに対して使用できます。マルチスレッド用のライブラリを使用すると,スレッドの間で接続を共有できます。