TXSETTRANCTL
形式
DATA DIVISION. * Include TX definitions. 01 TX-RETURN-STATUS. COPY TXSTATUS. * 01 TX-INFO-AREA. COPY TXINFDEF. PROCEDURE DIVISION. CALL "TXSETTRANCTL" USING TX-INFO-AREA TX-RETURN-STATUS.
機能
TXSETTRANCTLは,transaction_control特性を,TRANSACTION-CONTROLに指定した値に設定します。transaction_control特性は,TXCOMMIT,TXROLLBACKが呼び出し元にリターンする前に,新しいトランザクションが開始するかどうかを決定します。
TXSETTRANCTLは,呼び出し元がトランザクションモードかどうかに関係なく呼び出せます。設定したtransaction_control特性は,あとから呼び出されるTXSETTRANCTLで変更されるまで引き継がれて,効力を発揮します。
transaction_control特性の初期設定は,TX-UNCHAINEDです。
『データ領域』
『●TRANSACTION-CONTROL
次の二つのどちらかの値が,TRANSACTION-CONTROLの妥当な設定です。
{TX-UNCHAINED|TX-CHAINED}』
-
TX-UNCHAINED
このフラグは,TXCOMMITとTXROLLBACKが呼び出し元にリターンする前に,新たなトランザクションを開始しないことを示します。呼び出し元は,新しいトランザクションを開始する際には,TXBEGINを発行しなければなりません。
-
TX-CHAINED
このフラグは,TXCOMMITとTXROLLBACKが呼び出し元にリターンする前に,新しいトランザクションを開始することを示します。
リターン値
成功した場合,TXSETTRANCTLはTX-OKを返します。これは,負ではないリターン値です。『0が返ります。』『transaction_control特性の設定は,TRANSACTION-CONTROLの値に変更されました。』
エラー
次のような場合,TXSETTRANCTLはエラーリターンして,次のうちどれか一つの値を返します。これは,負のリターン値です。負のリターン値が返った場合は,TXSETTRANCTLはtransaction_control特性を変更しません。
- TX-EINVAL
-
TRANSACTION-CONTROLに設定した値は,TX-UNCHAINEDでも,TX-CHAINEDでもありません。
- TX-PROTOCOL-ERROR
-
TXSETTRANCTLは,適切でないコンテクストで呼ばれました(例えば,呼び出し元がまだTXOPENを呼び出していない)。
- TX-FAIL
-
トランザクションマネジャで,回復できないエラーが起こりました。トランザクションマネジャが,すでにアプリケーションに代わって作業できないことがエラーの原因です。
参照
TXBEGIN,TXCOMMIT,TXOPEN,TXROLLBACK,TXINFORM
『OpenTP1で使う場合の注意事項』
-
『TXSETTRANCTLと,OpenTP1の CBLDCTRN の関数は併用できません。』