コミット (COMMIT)

コミット(COMMIT)コマンドは,現行のトランザクションを完了し,コマンドを出したプログラムに対応するコミットメント定義に新しいコミットメント境界を設定するために使用されます。

コミットメント制御開始(STRCMTCTL)コマンドは,COMMITコマンドが出される前に,コミットメント定義を設定するために最初に出されなければなりません。そうでない場合には,メッセージが送られます。

COMMITコマンドが出されると,最後のコミットメント境界が開始された後でコミットメント定義のコミットメント制御のもとで資源に対して行われた保留中のすべての変更が永続的なものになります。この一連の変更に関連するコミットメントIDを指定することができます。ジャーナルに関連したファイルまたはAPIコミットメント資源がコミットメント制御のもとにある場合には,コミットメントIDが各ジャーナルのコミットされた変更(CM)ジャーナル項目に入れられます。

コミットメントIDは,活動化グループの終了時,ジョブの終了時,またはIPL(初期プログラム・ロード)の処理時に更新する必要がある場合には,通知オブジェクトの更新時にもシステムによって使用されます。

コミットが出された時に資源がコミットメント定義のコミットメント制御のもとにない場合には,エラーは起こりません。コミットメント定義のコミットメント制御のもとでオープンされたファイルに対して保留されているすべてのレコード・ロックは,コミットが出された時に解放されます。トランザクションの実行中に,資源が作成または変更された時に獲得されたオブジェクト・レベルのコミットメント制御資源のロックは,コミットが出された時に解放されます。

COMMITコマンドの詳細はIBM I INFORMATION CENTER (HTTP://WWW.IBM.COM/SYSTEMS/I/INFOCENTER/)の「コミットメント制御」トピック・コレクションにあります。

パラメーター

キーワード 記述 選択項目 ノーツ
CMTID コミット識別 文字値, *NONE, *LUWID オプショナル, 定位置 1

コミット識別 (CMTID)

コミットメント境界によってコミットされる1グループの変更を識別するために使用されるテキストを指定します。システムの異常障害が起こった場合,あるいはジョブがコミットされていない変更またはゼロ以外の完了コードで終了した場合には,このテキストはIPL処理中にSTRCMTCTLコマンドのNFYOBJパラメーターに指定されたオブジェクトに入れられます。

*NONE
このコミットメント境界でコミットされるトランザクションを識別するために,テキストは使用されません。
*LUWID
このコミットメント境界によってコミットしている変更グループを識別するためには,作業論理単位識別名およびこの作業論理単位の省略時のジャーナル名が使用されます。
'記述'
このコミットメント境界でコミットされている変更グループを識別するために,アポストロフィで囲まれた最大3000文字を指定します。

COMMIT   CMTID('ACCOUNT #123456 CHANGES END')

このコマンドは,コマンドを出したプログラムに関連したコミットメント定義に対してこの時点で行われたすべての変更がコミットされることを指定します。コミットメント識別コードは,'ACCOUNT #123456 CHANGES END'であり,活動化グループの終了時,ジョブの終了時,またはIPLの処理時に更新する必要がある場合に,通知オブジェクトの更新時にシステムによって使用されることがあります。

エラー・メッセージ

*ESCAPE メッセージ

CPF5030
メンバー&4で部分的な損傷がある。
CPF509F
入出力エラーの後でジョブが正常に接続された。
CPF5104
メッセージ&7に取り消し応答を受け取った。
CPF511D
理由コード&1でパラメーター保全性エラーが起こった。
CPF5134
メンバー&4に対する要求の処理は認可されていない。
CPF5149
プログラム装置またはライブラリー&3のファイル&2のメンバー&4の操作が正しくない。
CPF5168
&2のファイル&1のメンバー&3をオープンすることができない。
CPF5169
&3のDDMファイル&2への入出力(I/O)を完了することができなかった。
CPF5173
バッファー中の&6レコードが正しくない。
CPF5235
メンバー&4の項目はジャーナル処理されなかった。
CPF5257
ライブラリー&3ファイル&2の装置またはメンバー&4に障害がある。
CPF5272
レコードはメンバー&4に追加されなかった。
CPF83DB
コミット操作の結果ロールバックとなった。
CPF83D0
コミットメント操作は使用できない。
CPF83E1
制約違反のためにコミット操作が正常に実行されなかった。
CPF83E2
ロールバック操作が必要である。
CPF835F
コミットまたはロールバック操作が正常に実行されなかった。
CPF8350
コミットメントの定義が見つからない。
CPF8363
コミット操作が正常に実行されなかった。
CPF8367
コミットメント制御操作を実行できない。
CPF9203
DDMターゲット・システムから受け取った応答&1は予期されていなかった。
CPF9255
コミットメント制御操作が正常に実行されなかった。

*STATUS メッセージ

CPF5001
ライブラリー&3にファイル&2の終わりが検出された。
CPF83E6
コミットメント制御操作が進行中の再同期化とともに完了した。

*NOTIFY メッセージ

CPF5018
メンバー&4が最大サイズとなっている。増分を使用することはできません。
CPF502A
メンバー&4で可変長レコード・エラー。
CPF502B
トリガー・プログラムでエラーが起こった。
CPF502D
メンバー&4で参照制約違反。
CPF502E
メンバー&4の参照制約を妥当性検査することができない。
CPF502F
メンバー&4に対する検査制約違反。
CPF5026
メンバー&4に重複キーを使用することはできない。
CPF5029
メンバー&4でデータ・マッピング・エラー。
CPF503A
メンバー&4で参照制約違反。
CPF503B
メンバー&4にレコードを挿入または更新することができない。
CPF503F
メンバー&4で区画キー・エラー。
CPF5030
メンバー&4で部分的な損傷がある。
CPF5033
メンバー&4で選択/除外エラー。
CPF5034
アクセス・パスでキーが重複しています。
CPF5079
コミットメント制御の資源の限界を超えている。
CPF5084
メンバー&4に重複キーを使用することはできない。
CPF5085
基礎になっているメンバー&4のアクセス・パスでキーが重複している。
CPF5090
固有アクセス・パスの問題のためにメンバー&4を更新することができない。
CPF5097
メンバー&4でキー・マッピング・エラー。