Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス COBOL言語編


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