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で値を設定するデータ領域
-
データ名A
非連鎖モードのコミットを示す要求コードを「VALUE 'U-COMMIT'」と設定します。
-
データ名C
CBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDを指定します。
(4) 値が返されるデータ領域
-
データ名B
ステータスコードが,5けたの数字で返されます。
(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')を必ず実行してトランザクションをコミットしてください。