COMMIT (コミット)

自由形式構文 COMMIT{(E) } {境界 }
コード 演算項目 1 演算項目 2 結果フィールド 標識
COMMIT (E) 境界     _ ER _
COMMIT 命令では以下のことが行われます。
  • 前のコミットまたはロールバックROLBK (ロールバック)命令以後 (あるいは 前のコミットまたはロールバック命令がなかった場合には、コミットメント制御の もとにある命令の始めから後) の出力命令で指定されたすべての変更が、コミットメント 制御用にオープンされたユーザー・ファイルに行われます。 コミット用にオープンするファイルは、ファイル仕様書に COMMIT キーワードを指定して指定することができます。
  • コミットメント制御のもとにあるファイルのすべてのレコード・ロックを 解除します。

ファイルの変更およびレコード・ロックの解除はコミットメント制御のもと にあるすべてのファイルに適用され、その変更が COMMIT 命令を出しているプ ログラムによって要求されているか、または STRCMTCTL コマンドに指定された コミット範囲によって異なる同じ活動化グループまたはジョブ内の別のプログ ラムによって要求されているかには関係がありません。 COMMIT 命令を出しているプログラムでは、ファイルをコミットメント制御のも とに置く必要はありません。 COMMIT 命令では、ファイルの位置は変更されません。

コミットメント制御は、CL コマンド STRCMTCTL が実行された時点で開始され ます。 詳しくは、「Rational Development Studio for i ILE RPG プログラマーの手引き」の『コミットメント制御』セクションを参照してください。

境界 オペランドには、この COMMIT 命令で行われた変更と以後の変更との間の境界を識別するために、定数または変数 (ポインター以外の任意のタイプの) を指定することができます。境界 が指定されないと、この識別子はヌルになります。

COMMIT 例外 (プログラム状況コード 802 から 805) を 処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、 両方を指定することはできません。 例えば、コミットメント制御が活動状態で ない場合には、エラーが発生します。 エラー処理の詳細については、プログラム例外/エラーを 参照してください。

詳細については、ファイル命令を参照してください。