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はエラーリターンして,次のうちどれか一つの値を返します。これは,負のリターン値です。
アプリケーションの使い方
同じグローバルトランザクション内で,複数回のTXINFORMを呼び出すと,TXINFORMへの呼び出しでは,gtrid(グローバルトランザクション識別子)に同じXIDが供給されることを保証されています。しかし,bqual(ブランチ限定子)が同じかどうかは一概にはいえません。
参照
TXOPEN,TXSETCOMMITRET,TXSETTRANCTL,TXSETTIMEOUT