Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編


4.5.2 dc_trn_chained_commit_s − 連鎖モードのコミット

〈この項の構成〉

(1) 形式

(a) _s付き関数の場合

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

(b) _s無し関数の場合

#include <dcvtrn.h>
DCLONG dc_trn_chained_commit()

(2) 機能

トランザクションの同期点を取得します。

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

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

(4) リターン値

リターン値

数値

(10進数)

意味

DC_OK

0

正常終了しました。

DCCLTER_PROTO

-2502

誤ったコンテクスト(例 トランザクションの範囲外)から関数を呼び出しています。

DCCLTER_NO_BUFS

-2504

メモリ不足が発生しました。

DCCLTER_NET_DOWN

-2506

ネットワーク障害が発生しました。

DCCLTER_TIMED_OUT

-2507

dc_trn_chained_commit_s関数の処理時間で時間切れ(タイムアウト)が発生しました。

DCCLTER_OLTF_NOT_UP

-2515

OpenTP1が起動されていません。または,サーバとのコネクションが切断されているため,通信できません。

DCCLTER_NO_BUFS_AT_SERVER

-2517

トランザクションプロセス内でメモリ不足が発生しました。

DCCLTER_SYSERR

-2518

システムエラーが発生しました。

DCCLTER_CONNFREE

-2542

常設コネクションが解放されました。

DCCLTER_INVALID_CLTID

-2544

cltidに指定したクライアントIDは,dc_clt_cltin_s関数で受け取ったクライアントIDと異なっています。

DCTRNER_ROLLBACK

-3402

現在のトランザクションは,コミットに失敗したためロールバックしました。完了後,このプロセスはトランザクション下にあって,グローバルトランザクションの範囲内です。

DCTRNER_HEURISTIC

-3403

ヒューリスティック決定のため,あるトランザクションブランチはコミットとなり,あるトランザクションはロールバックとなりました。このリターン値は,ヒューリスティック決定の結果が,グローバルトランザクションの同期点の結果と一致しなかった場合に返ります。このリターン値が戻る原因およびグローバルトランザクションの同期点の結果は,メッセージログファイルを参照してください。

このリターン値が返ったあとも,このプロセスはトランザクション下にあって,グローバルトランザクションの範囲内です。

DCTRNER_HAZARD

-3404

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし,障害のためヒューリスティックに完了したトランザクションブランチの同期点の結果が判明しません。このリターン値が返る原因およびグローバルトランザクションの同期点の結果は,メッセージログファイルを参照してください。このリターン値が戻ったあともこのプロセスはトランザクション下にあって,グローバルトランザクションの範囲内です。

DCTRNER_NO_BEGIN

-3424

コミットは正常終了しましたが,新しいトランザクションは開始できませんでした。このリターン値が返ったあとは,このプロセスはトランザクション下にはありません。

DCTRNER_ROLLBACK_NO_BEGIN

-3425

現在のトランザクションは,コミットできないでロールバックしました。その後,新しいトランザクションを開始できなかったため,このプロセスはトランザクション下にありません。

DCTRNER_HEURISTIC_NO_BEGIN

-3426

dc_trn_chained_commit_s関数を実行したグローバルトランザクションは,ヒューリスティック決定のため,トランザクションブランチにはコミットされたものと,されていないものがあります。このリターン値は,ヒューリスティック決定の結果が,グローバルトランザクションの同期点の結果と一致しなかった場合にリターン値が返る原因となったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,メッセージログファイルを参照してください。その後,新しいトランザクションを開始できなかったため,このプロセスはトランザクション下にありません。

DCTRNER_HAZARD_NO_BEGIN

-3427

グローバルトランザクションのトランザクションブランチが,ヒューリスティックに完了しました。しかし,障害のため,ヒューリスティックに完了したトランザクションブランチの同期点の結果が判明しません。このリターン値が返る原因となったUAP,リソースマネジャ,およびグローバルトランザクションの同期点の結果は,メッセージログファイルを参照してください。その後,新しいトランザクションを開始できなかったため,このプロセスはトランザクション下にありません。

(5) 注意事項

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