Hitachi

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


6.5.4 CBLDCTRS('U-COMMIT') − 非連鎖モードのコミット

〈この項の構成〉

(1) 形式

(a) マルチスレッド環境の場合

■ PROCEDURE DIVISIONの指定

CALL 'CBLDCTRS' USING 一意名1

■ DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'U-COMMIT'.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC 9(9) COMP-X.

(b) シングルスレッド環境の場合

■ PROCEDURE DIVISIONの指定

CALL 'CBLDCTRN' USING 一意名1

■ DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'U-COMMIT'.
   02 データ名B  PIC X(5).

(2) 機能

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

CBLDCTRS('U-COMMIT')が正常終了すると,グローバルトランザクションは終了します。グローバルトランザクションの範囲外からは,SPPをトランザクションとして実行できません。

(3) UAPで値を設定するデータ領域

(4) 値が返されるデータ領域

(5) ステータスコード

ステータスコード

意味

00000

正常終了しました。

02501

要求コード(データ名A)に指定した値が間違っています。

02502

誤ったコンテクストからプログラムを呼び出しています。

02504

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

02506

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

02507

CBLDCTRS('U-COMMIT')の処理時間で時間切れ(タイムアウト)が発生しました。

02515

OpenTP1が起動されていません。

02517

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

02518

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

02542

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

02544

データ名Cに指定したクライアントIDはCBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDと異なっています。

03402

コミットに失敗したためロールバックしました。

このステータスコードが戻ったあと,このプロセスはグローバルトランザクションの範囲外となります。

03403

ヒューリスティック決定によって,一部,またはすべてのトランザクションブランチはロールバックされました。詳細は,メッセージログファイルを参照してください。このステータスコードが戻ったあと,グローバルトランザクションの範囲外となります。

03404

ヒューリスティック決定でトランザクションが完了しましたが,障害のため結果がわかりません。詳細は,メッセージログファイルを参照してください。このステータスコードが戻ったあと,グローバルトランザクションの範囲外となります。

(6) 注意事項

CUPのプロセスを正常終了させるときは,CBLDCTRS('U-COMMIT')を必ず実行してトランザクションをコミットしてください。