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 を指定できますが、 両方を指定することはできません。 例えば、コミットメント制御が活動状態で ない場合には、エラーが発生します。 エラー処理の詳細については、プログラム例外/エラーを 参照してください。
詳細については、ファイル命令を参照してください。