3.3.5 トランザクションの移行
トランザクションのコミット処理を,UAPがHiRDBをアクセスしたときと異なるプロセスで実行することをトランザクションの移行といいます。
なお,ここでいうUAPとは,HiRDB XAライブラリを使用してHiRDBに接続するUAPのことです。
トランザクションの移行機能を使用する場合,クライアント環境定義のPDXAMODEオペランドに1を指定してください。
PDXAMODEオペランドについては,「クライアント環境定義の設定内容」を参照してください。
(1) PDXAMODEオペランドの指定によるLOCK TABLE UNTIL DISCONNECTの有効範囲
PDXAMODEの指定によって,LOCK文のLOCK TABLE UNTIL DISCONNECTの有効範囲が変わります。
(a) PDXAMODE=0の場合
-
AP記述によってリソースマネジャのオープン処理をする場合
リソースマネジャのクローズ実行時まで有効になります。
-
トランザクションごとにリソースマネジャのオープン処理をする機能がある場合
グローバルトランザクション内で有効になります。
(b) PDXAMODE=1の場合
-
AP記述によってリソースマネジャのオープン処理をする場合
-
トランザクションの移行が発生しない場合
リソースマネジャのクローズ実行時まで有効になります。
-
トランザクションの移行が発生する場合
グローバルトランザクション内で有効になります。
-
-
トランザクションごとにリソースマネジャのオープン処理をする機能がある場合
グローバルトランザクション内で有効になります。
OpenTP1を利用した場合のLOCK TABLE UNTIL DISCONNECTの有効範囲を,次の表に示します。
PDXAMODEの指定値 |
OpenTP1の指定値 |
LOCK TABLE UNTIL DISCONNECTの有効範囲 |
|||
---|---|---|---|---|---|
0 |
trn_rm_open_close_scope=process |
リソースマネジャのクローズまで有効 |
|||
trn_rm_open_close_scope=transaction |
グローバルトランザクション内で有効 |
||||
1 |
trn_rm_open_close_scope=process |
trnstringオペランドで-dオプションを指定 |
リソースマネジャのクローズまで有効 |
||
trnstringオペランドで-dオプションを省略 |
同一のOpenTP1システム内では単体のAPでグローバルトランザクションを構成 |
||||
同一のOpenTP1システム内では複数のAPでグローバルトランザクションを構成 |
一つのAPが HiRDB XAライブラリとリンク |
||||
複数のAPが HiRDB XAライブラリと リンク |
グローバルトランザクション内で有効 |
||||
trn_rm_open_close_scope=transaction |