dc_mcf_rollback

名称

MHPのロールバック

形式

ANSI C,C++の形式

#include <dcmcf.h>
int  dc_mcf_rollback(DCLONG action)

K&R版 C の形式

#include <dcmcf.h>
int  dc_mcf_rollback(action)
DCLONG      action;

機能

トランザクション属性を定義したMHPのサービスプログラムの開始から,dc_mcf_rollback関数までの処理を取り消します。actionにDCMCFRTRYを設定した場合は,MHPの開始からdc_mcf_rollback関数までの処理を取り消して,取り消した処理のMHPをスケジュールし直します。

UAPで値を設定する引数

●action

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

DCMCFRTRY
MHPを開始した時点から,dc_mcf_rollback関数までの処理を取り消して,MHPを異常終了します。取り消した処理はスケジュールし直します(受信メッセージを,該当する入力キューの最後に格納し,MHPをスケジュールし直します)。
MHPは異常終了しますが,UAP異常終了通知イベント(ERREVT3)は起動しません。また,アプリケーション異常終了限界回数にはカウントしません。アプリケーション属性定義(mcfaalcap)で異常終了時に閉塞する指定をしていても,アプリケーション,サービスグループ,およびサービスは閉塞しません。
DCMCFRRTN
MHPを開始した時点から,dc_mcf_rollback関数までの処理を取り消して,リターンします。DCMCFRRTNを設定したdc_mcf_rollback関数が正常に終了したあとの処理は,別のトランザクションとして処理します。
DCMCFNRTN
MHPを開始した時点から,dc_mcf_rollback関数までの処理を取り消します。dc_mcf_rollback関数からリターンしないで,MHPを異常終了します。
このとき,UAP異常終了通知イベント(ERREVT3)を起動します。また,アプリケーション異常終了限界回数にカウントします。アプリケーション属性定義(mcfaalcap)の指定によっては,アプリケーション,サービスグループ,およびサービスを閉塞します。

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

表2-2 actionに設定する値とシステムの動作の関係(dc_mcf_rollback関数)

設定値MHPの動作ERREVT3の起動各種閉塞処理
DCMCFRTRY異常終了します。起動しません。閉塞しません。
DCMCFRRTN関数がリターンします。起動しません。閉塞しません。
DCMCFNRTN異常終了します。起動します。アプリケーション属性定義(mcfaalcap)の指定によっては,アプリケーション,サービスグループ,およびサービスが閉塞することがあります。

リターン値

リターン値リターン値(数値)意味
DCMCFRTN_000000正常に終了しました。
DCMCFRTN_72000-13000<MHPの実行でリターンした場合>
dc_mcf_rollback関数を呼び出した位置が間違っています。MHPで先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に,actionにDCMCFRRTNを設定したdc_mcf_rollback関数を呼び出しています。
非トランザクション属性のMHPから,dc_mcf_rollback関数を呼び出しています。
<SPPの実行でリターンした場合>
SPPでは,dc_mcf_rollback関数は呼び出せません。
DCMCFRTN_72027-13027actionに設定した値が間違っています。
上記以外プログラムの破壊などによる,予期しないエラーが起こりました。