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

<この項の構成>
(1) 形式
(2) 機能
(3) UAPで値を設定するデータ領域
(4) 値が返されるデータ領域
(5) ステータスコード
(6) 注意事項

(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.

(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ネットワーク障害が発生しました。
02507CBLDCTRS('U-COMMIT')の処理時間で時間切れ(タイムアウト)が発生しました。
02515OpenTP1が起動されていません。
02517トランザクションプロセス内でメモリ不足が発生しました。
02518システムエラーが発生しました。
02542常設コネクションが解放されました。
02544データ名Cに指定したクライアントIDはCBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDと異なっています。
03402コミットに失敗したためロールバックしました。
このステータスコードが戻ったあと,このプロセスはグローバルトランザクションの範囲外となります。
03403ヒューリスティック決定によって,一部,またはすべてのトランザクションブランチはロールバックされました。詳細は,メッセージログファイルを参照してください。このステータスコードが戻ったあと,グローバルトランザクションの範囲外となります。
03404ヒューリスティック決定でトランザクションが完了しましたが,障害のため結果がわかりません。詳細は,メッセージログファイルを参照してください。このステータスコードが戻ったあと,グローバルトランザクションの範囲外となります。

(6) 注意事項

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