IBM Extension
IBM Extension

COMMIT ステートメント

COMMIT ステートメントを使用することによって、データベース・レコードに対する変更を同期化するとともに、COMMIT が実行されるまでは他のジョブがこれらのレコードを修正しないようにすることができます。 COMMIT ステートメントの形式は次のとおりです。

構文図を読む構文図をスキップする
COMMIT ステートメント - 形式

>>-COMMIT------------------------------------------------------><

COMMIT ステートメントが実行されると、前のコミットメント境界以降に現在のコミットメント定義のために、コミットメント制御下のファイルに対して行われたすべての変更が永続的なものになります。 コミットメント境界は、ROLLBACK または COMMIT ステートメントが正常に実行されることによって設定されます。 現行のジョブ中で COMMIT または ROLLBACK がまだ一度も出されていない場合、 コミットメント境界は、そのジョブの中でコミットメント制御下のファイルが最初に OPEN されたときに設定されます。 変更はコミットメント制御下のすべてのファイルに対して行われるものであり、 単に COMMIT ステートメントを出す COBOL プログラム内のコミットメント制御下のファイルに対してのみ行われるものではありません。

COMMIT が実行されると、コミットメント制御下のファイルに対する最後のコミットメント境界以降に、 現行のコミットメント定義によって保持されたすべてのレコード・ロックが開放され、レコードが使用可能になります。 コミットメント制御は、ジョブ・レベルまたは活動化グループ・レベルで範囲を限定できます。 コミットメント制御の範囲は、デフォルトでは活動化グループとなっています。 これは、異なる活動化グループ (CL プログラム) でアプリケーションが非 ILE COBOL プログラムに関係している場合に重要です。

COMMIT ステートメントは、コミットメント制御下のファイルに対してのみ影響を与えます。 COMMIT が実行されても、コミットメント制御下のファイルがオープンされていない場合は、COMMIT ステートメントは何ら効力をもたず、コミットメント境界も設定されません。

COMMIT ステートメントは以下のことを行いません。
  • どのファイルの I-O-FEEDBACK 域も修正しません。
  • どのファイルのファイル位置標識も変更しません。
  • どのファイルのファイル状況値も設定しません。

コミットメント制御について詳しくは、 「IBM® Rational® Development Studio for i: ILE COBOL プログラマーの手引き」を参照してください。

End of IBM Extension
End of IBM Extension