Hitachi

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


ee_trn_rollback_mark

〈このページの構成〉

名称

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

形式

ANSI C,C++の形式

#include <eetrn.h>
int  ee_trn_rollback_mark(void)

機能

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

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

リターン値

リターン値

意味

EE_OK

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

EECOMER_CNDBPP

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

EECOMER_CNDUOC

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

EECOMER_ENVIRON

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

指定例

if (ee_trn_rollback_mark() != EE_OK)
  fputs("cannot rollback transaction\n",stderr);

注意事項

ee_trn_rollback_mark関数が正常終了したあとは,ee_rpc_cmtsend関数によるサービス要求,およびee_tim_execap関数(acttypeにEETIM_COMTを設定)によるタイマトランザクション起動要求を実行してもエラーになります。