Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


CBLEETRN('ROLLMARK')

〈このページの構成〉

名称

トランザクションのロールバック指示

形式

PROCEDURE DIVISIONの指定

CALL  'CBLEETRN' USING 一意名1

DATA DIVISIONの指定

01 一意名1.
  02 データ名A PIC  X(8) VALUE 'ROLLMARK'.
  02 データ名B PIC  X(5).

機能

トランザクションのロールバックを指示します。CBLEETRN('ROLLMARK')が正常に終了すると,関数を呼び出したスレッドのトランザクションはロールバックされます。

トランザクション起動後にUAPをリターンするまでの,CBLEETRN('C-ROLL ')またはCBLEETRN('ROLLMARK')の呼び出し回数の上限値を,トランザクション関連定義のtrn_max_rollback_countオペランドで指定できます。CBLEETRN('C-ROLL ')またはCBLEETRN('ROLLMARK')の呼び出し回数が,trn_max_rollback_countオペランドで指定した上限値に達した場合,トランザクション関連定義のtrn_max_rollback_downmodeオペランドの指定に従って,異常終了するか,またはKFSB50927-Eメッセージを出力します。異常終了時にサービスを閉塞するかどうかは,プロセス関連定義のservice_holdオペランドで指定します。

UAPで値を設定するデータ領域

●データ名A

トランザクションのロールバック指示を示す要求コードを「VALUE 'ROLLMARK'」と設定します。トランザクションがロールバックした処理以降も,この内容は変わりません。

TP1/EEから値が返されるデータ領域

●データ名B

ステータスコードが,5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

同期点処理をロールバックさせます。また,ロールバックが終了したあとも,このスレッドはトランザクション下にあって,グローバルトランザクションの範囲内です。

00001

TP1/EEの環境下にありません。

00004

UOCから発行しているため,この機能は使用できません。

00005

オフラインバッチプロセスから発行しているため,この機能は使用できません。

指定例

01 MISC.
  02 CMD-CODE     PIC X(8).
  02 STATUS-CODE  PIC X(5).
     :
     :
MOVE 'ROLLMARK' TO CMD-CODE OF MISC.
CALL 'CBLEETRN' USING MISC.
IF STATUS-CODE OF MISC NOT EQUAL TO '00000' THEN
    MOVE 'CANNOT ROLLBACK TRANSACTION' TO ERRMSG OF OUT-ERROR-REC
    WRITE OUT-ERROR-REC
END IF.

注意事項

CBLEETRN('ROLLMARK')が正常終了したあとは,CBLEERPC('CMTSND ')によるサービス要求,およびCBLEETIM('EXECAP ')(データ名Cに'COMT'を設定)によるタイマトランザクション起動要求を実行してもエラーになります。