TXSETTIMEOUT
形式
DATA DIVISION. * Include TX definitions. 01 TX-RETURN-STATUS. COPY TXSTATUS. * 01 TX-INFO-AREA. COPY TXINFDEF. PROCEDURE DIVISION. CALL "TXSETTIMEOUT" USING TX-INFO-AREA TX-RETURN-STATUS.
機能
TXSETTIMEOUTは,timeoutに指定した値にtransaction_timeout特性を設定します。transaction_timeout特性の値には,トランザクションを完了させなければならない時間,つまりトランザクションをタイムアウトする時間を設定します。ここで示す時間とは,UAPがTXBEGINを呼び出してからTXCOMMITを呼び出すまで,またはTXBEGINを呼び出してからTXROLLBACKを呼び出すまでの時間を示します。
TXSETTIMEOUTは,呼び出し元がトランザクションモードにいるかどうかに関係なく呼び出せます。TXSETTIMEOUTがトランザクションモードから呼び出されても,新しいタイムアウトの値は,次のトランザクションまで効果を発揮しません。
transaction_timeout特性の初期設定は,0(タイムアウトなし)です。
『システム定義の trn_expiration_time に値を指定している場合は,その値が初期設定になります。』
『データ領域』
『●TX-INFO-AREA
TRANSACTION-TIMEOUTで指定した秒数は,トランザクションがタイムアウトする時間を設定します。秒数は,そのシステムで定義されたS9(9) COMP-5の最大値の値が設定できます。』
『●TX-RETURN-STATUS
TXSETTIMEOUTの実行結果が返されます。』
リターン値
成功した場合,TXSETTIMEOUTはTX-OKを返します。これは,負ではないリターン値です。『0が返ります。』『transaction_timeout特性の設定は,TX-INFO-AREAの値に変更されました。』
エラー
次のような場合,TXSETTIMEOUTはエラーリターンして,次のうちどれか一つの値を返します。これは,負のリターン値です。負のリターン値が返った場合は,TXSETTIMEOUTはtransaction_timeout特性を変更しません。
- TX-EINVAL
-
TRANSACTION-TIMEOUTに設定した値が間違っています。
- TX-PROTOCOL-ERROR
-
TXSETTIMEOUTは,適切でないコンテクストで呼ばれました(例えば,呼び出し元がTXOPENをまだ呼び出していない)。
- TX-FAIL
-
トランザクションマネジャで,回復できないエラーが起こりました。トランザクションマネジャが,すでにアプリケーションに代わって作業できないことがエラーの原因です。
参照
TXBEGIN,TXCOMMIT,TXOPEN,TXROLLBACK,TXINFORM
『OpenTP1で使う場合の注意事項』
-
『TXSETTIMEOUTと,OpenTP1の CBLDCTRN は併用できません。』