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'を設定)によるタイマトランザクション起動要求を実行してもエラーになります。