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