7.2.4 トランザクションの移行
HiRDB XAライブラリを使用してHiRDBに接続するUAPでは,HiRDBにアクセスしたときと異なるプロセスでトランザクションのコミット処理を実行できます。このことをトランザクションの移行といいます。トランザクションの移行の概要を次の図に示します。
|
- メリット
-
トランザクションの移行を使用すると,トランザクションマネジャのUAP処理はトランザクションの完了を待たなくても次回のサービス要求を受け付けられます。このため,この機能を使用しないときに比べて,少ないプロセス数でUAPを実行できます。ただし,HiRDBが使用するサーバプロセス数及び排他待ち※回数が増える場合があります。
- 注※
-
トランザクションが完了するまでの間,次回のサービス要求によるHiRDBへのアクセスは,排他待ちになる場合が増えます。
- 適用基準
-
トランザクションマネジャがトランザクションの移行を使用する場合は,HiRDBもトランザクションの移行を使用してください。
トランザクションマネジャがトランザクションの移行を使用しない場合は,HiRDBもトランザクションの移行を使用しないでください。
トランザクションマネジャがトランザクションの移行の使用可否を設定できる場合は,次に示す点に考慮してトランザクションの移行の使用可否を設定してください。
-
HiRDBへのアクセス負荷より,UAP自身の処理の負荷が大きい場合にトランザクションの移行を使用します。
-
- 運用方法
-
トランザクションの移行を使用する場合は,クライアント環境定義のPDXAMODEオペランドに1を指定してください。この機能を使用しない場合は,このオペランドに0を指定するか,このオペランドを省略してください。
PDXAMODEオペランドについては,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
- 注意事項
-
-
トランザクションマネジャとHiRDBの間で,トランザクションの移行を使用するかどうかの設定が合っていないと,トランザクションが決着できなかったり,HiRDBが異常終了したり,トランザクションマネジャにエラーリターンしたりすることがあります。
-
この機能を使用すると,LOCK文のLOCK TABLE UNTIL DISCONNECTの有効範囲が変わります。LOCK TABLE UNTIL DISCONNECTの有効範囲については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
-
- 〈この項の構成〉
(1) トランザクションマネジャがOpenTP1の場合
トランザクションの移行を使用すると,OpenTP1のコミット最適化及びプリペア最適化にHiRDBが対応します。したがって,OpenTP1のtrnstringオペランドの-dオプションを省略した場合は,この機能を使用してください。-dオプションを指定した場合は,この機能を使用しないでください。
OpenTP1システム定義のトランザクションサービス定義のtrnstringオペランドとHiRDBのPDXAMODEオペランドの関係を次の表に示します。
trnstringオペランドの指定 |
PDXAMODE オペランドの値 |
---|---|
-dオプションを省略 |
1 |
-dオプションを指定 |
0 |
- 注
-
-
trnstringオペランドとPDXAMODEオペランドの指定が合っていないと,HiRDBがトランザクションを決着できません。このとき,HiRDBはOpenTP1に対してXA関数エラーリターンコード(−6)を返します。
-
-dオプションは,TP1/Server Baseのバージョンが03-03以降のときに指定できます。
-
trnstringオペランドについては,マニュアル「OpenTP1 システム定義」を参照してください。コミット最適化又はプリペア最適化については,マニュアル「OpenTP1 プログラム作成の手引」を参照してください。