TXINFORM
形式
DATA DIVISION. * Include TX definitions. 01 TX-RETURN-STATUS. COPY TXSTATUS. * 01 TX-INFO-AREA. COPY TXINFDEF. PROCEDURE DIVISION. CALL "TXINFORM" USING TX-INFO-AREA TX-RETURN-STATUS.
機能
TXINFORMは,グローバルトランザクションの情報を,TX-INFO-AREAに返します。さらに,TXINFORMは呼び出し元が現在トランザクションモードにあるかどうかを示す値を返します。
『データ領域』
『●TX-INFO-AREA
TXINFORMはTX-INFO-AREAレコードに,グローバルトランザクションの情報を設定します。TX-INFO-AREAレコードの内容については,TXINTROを参照してください。
トランザクションモードでTXINFORMを発行した場合は,TX-IN-TRANが設定され,XID-RECに現在のトランザクションブランチの識別子を,TRANSACTION-STATEには現在のトランザクションの状態が設定されます。
トランザクションモードでない呼び出し元からTXINFORMを呼び出した場合には,TRANSACTION-MODEにはTX-NOT-IN-TRANが設定され,XID-RECにはnull XIDが設定されます(詳細はTXINTROを参照)。さらに,呼び出し元がトランザクションモードであるかないかにかかわらず,COMMIT-RETURN,TRANSACTION-CONTROL,TRANSACTION-TIMEOUTは,現在設定されているcommit_return,transaction_controlと秒単位のトランザクションタイムアウト値と同じ値になります。
返されたトランザクションタイムアウト値は,次のトランザクションモードが開始されたときに設定されて反映されます。しかし,呼び出し元の現在のトランザクションでは,タイムアウト値に反映されていない場合もあります。その理由は,現在のトランザクションの開始後TXSETTIMEOUTが呼ばれた場合,timeout値を変更しているかもしれないからです。』
『●TX-RETURN-STATUS
TXINFORMの実行結果が返されます。』
リターン値
TXINFORMの呼び出し元がトランザクションモードの場合は,1が返ります。TXINFORMの呼び出し元がトランザクションモードでない場合は,0が返ります。
エラー
次のような場合,TXINFORMはエラーリターンして,次のうちどれか一つの値を返します。これは,負のリターン値です。
- TX-PROTOCOL-ERROR
-
TXINFORMは,適切でないコンテクストで呼ばれました(例えば,呼び出し元がまだTXOPENを呼び出していない)。
- TX-FAIL
-
トランザクションマネジャで,回復できないエラーが起こりました。トランザクションマネジャが,すでにアプリケーションに代わって作業できないことがエラーの原因であることを示します。
アプリケーションの使い方
同じグローバルトランザクション内で,複数回のTXINFORMを呼び出すと,TXINFORMへの呼び出しでは,gtrid(グローバルトランザクション識別子)に同じXIDが供給されることを保証されています。しかし,bqual(ブランチ限定子)が同じかどうかは一概にはいえません。
参照
TXOPEN,TXSETCOMMITRET,TXSETTRANCTL,TXSETTIMEOUT