Hitachi

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


CBLDCMCF('ROLLBACK')

〈このページの構成〉

名称

MHPのロールバック

形式

PROCEDURE DIVISIONの指定

CALL 'CBLDCMCF' USING 一意名1

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'ROLLBACK'.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(4).
   02 データ名D  PIC X(12) VALUE LOW-VALUE.

機能

トランザクション属性を定義したMHPのサービスプログラムの開始から,ここまでの処理を取り消します。データ名Cに「'RTRY'」を設定した場合は,MHPの開始からロールバックまでの処理を取り消して,取り消した処理のMHPをスケジュールし直します。

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

●データ名A

部分回復を示す要求コードを「VALUE 'ROLLBACK'」と設定します。

●データ名C

部分回復の種別を設定します。次のどれか一つを設定します。

'RTRY'

MHPを開始した時点から,ロールバックまでの処理を取り消して,MHPを異常終了します。取り消した処理はスケジュールし直します(受信メッセージを,該当する入力キューの最後に格納し,MHPをスケジュールし直します)。

MHPは異常終了しますが,UAP異常終了通知イベント(ERREVT3)は起動しません。また,アプリケーション異常終了限界回数にはカウントしません。アプリケーション属性定義(mcfaalcap)で異常終了時に閉塞する指定をしていても,アプリケーション,サービスグループ,およびサービスは閉塞しません。

'RTN△'

MHPを開始した時点から,ロールバックまでの処理を取り消して,リターンします。「'RTN△'」を設定したCBLDCMCF('ROLLBACK')が正常リターンしたあとの処理は,別のトランザクションとして処理します。

'NRTN'

MHPを開始した時点から,ロールバックまでの処理を取り消します。CBLDCMCF('ROLLBACK')からリターンしないで,MHPを異常終了します。

このとき,UAP異常終了通知イベント(ERREVT3)を起動します。また,アプリケーション異常終了限界回数にカウントします。アプリケーション属性定義(mcfaalcap)の指定によっては,アプリケーション,サービスグループ,およびサービスを閉塞します。

設定する値とシステムの動作の関係を,次の表に示します。

表2‒2 設定する値とシステムの動作の関係(CBLDCMCF('ROLLBACK'))

設定値

MHPの動作

ERREVT3の起動

各種閉塞処理

'RTRY'

異常終了します。

起動しません。

閉塞しません。

'RTN△'

CALL文がリターンします。

起動しません。

閉塞しません。

'NRTN'

異常終了します。

起動します。

アプリケーション属性定義(mcfaalcap)の指定によっては,アプリケーション,サービスグループ,およびサービスが閉塞することがあります。

●データ名D

「LOW-VALUE」を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

72000

<MHPの実行でリターンした場合>

先頭セグメントを受信する CBLDCMCF('RECEIVE ')を呼び出す前に,データ名Cに「'RTN△'」を設定した CBLDCMCF('ROLLBACK')を呼び出しています。

非トランザクション属性のMHPから,CBLDCMCF('ROLLBACK') を呼び出しています。

<SPPの実行でリターンした場合>

SPPでは,CBLDCMCF('ROLLBACK')を呼び出せません。

72016

データ名Dに設定した値が間違っています。

72027

部分回復種別(データ名C)に設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

上記以外

プログラムの破壊などによる,予期しないエラーが発生しました。