Hitachi

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


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_00000

0

正常に終了しました。

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

-13027

actionに設定した値が間違っています。

上記以外

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