4.5.3 dc_trn_chained_rollback_s連鎖モードのロールバック

<この項の構成>
(1) 形式
(2) 機能
(3) UAPで値を設定する引数
(4) リターン値
(5) 注意事項

(1) 形式

(a) _s付き関数の場合

#include <dcvtrn.h>
DCLONG dc_trn_chained_rollback_s(DCCLT_ID cltid)

(b) _s無し関数の場合

#include <dcvtrn.h>
DCLONG dc_trn_chained_rollback()

(2) 機能

トランザクションをロールバックします。

dc_trn_chained_rollback_s関数が正常終了すると,新しいグローバルトランザクションが発生し,以降実行する関数は新しいグローバルトランザクションの範囲になります。

(3) UAPで値を設定する引数

(4) リターン値

リターン値数値
(10進数)
意味
DC_OK0正常終了しました。
DCCLTER_PROTO-2502誤ったコンテクスト(例 トランザクションの範囲外)から関数を呼び出しています。
DCCLTER_NO_BUFS-2504メモリ不足が発生しました。
DCCLTER_NET_DOWN-2506ネットワーク障害が発生しました。
DCCLTER_TIMED_OUT-2507dc_trn_chained_rollback_s関数の処理時間で時間切れ(タイムアウト)が発生しました。
DCCLTER_OLTF_NOT_UP-2515OpenTP1が起動されていません。または,サーバとのコネクションが切断されているため,通信できません。
DCCLTER_NO_BUFS_AT_SERVER-2517トランザクションプロセス内でメモリ不足が発生しました。
DCCLTER_SYSERR-2518システムエラーが発生しました。
DCCLTER_CONNFREE-2542常設コネクションが解放されました。
DCCLTER_INVALID_CLTID-2544cltidに指定したクライアントIDは,dc_clt_cltin_s関数で受け取ったクライアントIDと異なっています。
DCTRNER_HEURISTIC-3403ヒューリスティック決定のため,あるトランザクションブランチはコミットとなり,あるトランザクションはロールバックとなりました。
このリターン値は,ヒューリスティック決定の結果が,グローバルトランザクションの同期点の結果と一致しなかった場合に戻ります。このリターン値が戻る原因およびグローバルトランザクションの同期点の結果は,メッセージログファイルを参照してください。
このリターン値が戻ったあとも,このプロセスはトランザクション下にあって,グローバルトランザクションの範囲内です。
DCTRNER_HAZARD-3404グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし,障害のためヒューリスティックに完了したトランザクションブランチの同期点の結果が判明しません。このリターン値が戻る原因およびグローバルトランザクションの同期点の結果は,メッセージログファイルを参照してください。
このリターン値が戻ったあともこのプロセスはトランザクション下にあって,グローバルトランザクションの範囲内です。
DCTRNER_NO_BEGIN-3424ロールバックは正常終了しましたが,新しいトランザクションは開始できませんでした。このリターン値が返ったあとは,このプロセスはトランザクション下にはありません。
DCTRNER_HEURISTIC_NO_BEGIN-3426dc_trn_chained_rollback_s関数を実行したグローバルトランザクションは,ヒューリスティック決定のため,トランザクションブランチにはコミットされたものと,されていないものがあります。
このリターン値は,ヒューリスティック決定の結果が,グローバルトランザクションの同期点の結果と一致しなかった場合に返ります。
このリターン値が返る原因となったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,メッセージログファイルを参照してください。
その後,新しいトランザクションを開始できなかったため,このプロセスはトランザクション下にありません。
DCTRNER_HAZARD_NO_BEGIN-3427グローバルトランザクションのトランザクションブランチが,ヒューリスティックに完了しました。しかし,障害のため,ヒューリスティックに完了したトランザクションブランチの同期点の結果が判明しません。
このリターン値が返る原因となったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,メッセージログファイルを参照してください。
その後,新しいトランザクションを開始できなかったため,このプロセスはトランザクション下にありません。

(5) 注意事項

トランザクションをロールバックしてからCUPのプロセスを終了させるときは,dc_trn_unchained_rollback_s関数を必ず実行してください。