TXSETCOMMITRET

名称

commit_return 特性の設定

形式

DATA DIVISION.
* Include TX definitions.
01 TX-RETURN-STATUS.
   COPY TXSTATUS.
*
01 TX-INFO-AREA.
   COPY TXINFDEF.

PROCEDURE DIVISION.
CALL "TXSETCOMMITRET" USING TX-INFO-AREA TX-RETURN-STATUS.

機能

TXSETCOMMITRETは,commit_return特性をwhen_returnに指定した値に設定します。commit_return特性は,TXCOMMITが呼び出し元に制御を戻す方法に対して影響します。

TXSETCOMMITRETは,呼び出し元がトランザクションモードかどうかに関係なく呼び出せます。設定したcommit_return特性は,あとから呼び出されるTXSETCOMMITRETで変更されるまで引き継がれて,効力を発揮します。commit_return特性の初期設定値は,製品の仕様に依存します。『OpenTP1の場合は,TX-COMMIT-COMPLETEDです。』

『データ領域』

『●TX-INFO-AREA

次の二つのどちらかの値が,COMMIT-RETURNの妥当な設定です。

{TX-COMMIT-DECISION-LOGGED|TX-COMMIT-COMPLETED}

リターン値

『リターン値が0で』成功した場合,TXSETCOMMITRETはTX-OKを返します。これは,負ではないリターン値です。『この場合,commit_return特性の設定は,TX-INFO-AREAに設定した値に変更されます。』

『リターン値が正の値で』成功した場合,TXSETCOMMITRETは TX-NOT-SUPPORTEDを返します。これは,負ではないリターン値です。

『 TX-INFO-AREAに設定した値は,システムのトランザクションマネジャでは使えません。』この場合のcommit_return特性は,変更されません。トランザクションマネジャはTX-COMMIT-COMPLETEDまたはX-COMMIT-DECISION-LOGGEDのどちらかは,COMMIT-RETURNの値として使えるようにしておく必要があります。『OpenTP1の場合は,TX-COMMIT-RETURNです。』

エラー

次のような場合,TXSETCOMMITRETはエラーリターンして,次のうちどれか一つの値を返します。これは,負のリターン値です。負のリターン値が返った場合は,TXSETCOMMITRETはcommit_return特性を変更しません。

TX-EINVAL
TX-INFO-AREAに設定した値は,TX-COMMIT-DECISION-LOGGEDでも,TX-COMMIT-COMPLETEでもありません。
TX-PROTOCOL-ERROR
TXSETCOMMITRETは,適切でないコンテクストで呼ばれました(例えば,呼び出し元がTXOPENを呼び出していない)。
TX-FAIL
トランザクションマネジャで,回復できないエラーが起こりました。トランザクションマネジャが,すでにアプリケーションに代わって作業できないことが,エラーの原因です。

参照

TXCOMMIT,TXOPEN,TXINFORM

『OpenTP1で使う場合の注意事項』

  1. 『TXSETCOMMITRETと,OpenTP1の CBLDCTRN は併用できません。』