コミットメント制御の開始および終了

CL コマンド STRCMTCTL は、コミットメント制御を開始したいことをシステム に伝えます。

LCKLVL(ロック・レベル) パラメーターによって、レコードがコミットメント制御下 でロックされるレベルを選択することができます。ロック・レベルについて詳しくは 、コミットメント制御のロックおよび「CL プログラミング」を参照してください。

コミットメント制御下にあるファイルを処理するかどうかの判断を実行時に 行うには、コミットメント制御を条件付きにすることができます。詳細については、 条件付きコミットメント制御の指定を参照してください。

COMMIT 命令コードを使用して 1 群の変更を完了した時に、グループの終わりを 識別するためのラベルを指定することができます。ジョブの異常終了の場合には、この識別ラベルは、1 群の変更を正常に完了し た最後のグループを認識できるように、ファイル、メッセージ待ち行列、また はデータ域に書き出されます。このファイル、メッセージ待ち行列、 またはデータ域を STRCMTCTL コマンドで指定します。

コミットメント制御のために指定したファイルを処理するプログラムを 呼び出す前に、STRCMTCTL コマンドを出してください。 STRCMTCTL コマンドを出す前に、コミットメント制御のために 指定したファイルをオープンするプログラムを呼び出した場合には、 ファイルは正常にオープンされません。

CL コマンド ENDCMTCTL は、活動化グループまたはジョブがコミットメント制御 によるファイルの処理を完了したことをシステムに通知します。 STRCMTCTL コマンドおよび ENDCMTCTL コマンドについての詳細は、Web サイト http://www.ibm.com/eserver/iseries/infocenteriSeries Information Center の中の『プログラミング』カテゴリーの『CL および API』の節を参照してください。

コミットメント制御のロック

STRCMTCTL コマンドでは、ロックのレベルを LCKLVL(*ALL)、LCKLVL(*CHG)、または LCKLVL(*CS) の いずれかに指定します。 プログラムがコミットメント制御下で操作され、コミットメント制御下の ファイルのレコードで入力または出力操作を処理した時には、 レコードは次のとおりコミットメント制御によってロックされます。

COMMIT 命令および ROLBK 命令は、レコード上のロックを解除します。 UNLOCK 命令は、コミットメント制御を使用してロックされたレコードを解除 しません。 ロック・レベルについての詳細は、Web サイト http://www.ibm.com/eserver/iseries/infocenteriSeries Information Center の中 の『プログラミング』カテゴリーの『CL および API』の節を参照してください。

COMMIT 命令または ROLBK 命令が必要となる前にコミットメント制御によって ロックできる項目数は、制限される場合があります。 詳しくは 、「バックアップおよび回復の手引き」を参照してください。

注:
SETLL および SETGT 命令は、(更新ではなく) 読み取り命令でコミット メント制御のためにレコードがロックされた場合と同様にレコードをロック します。

コミットメント制御の有効範囲

コミットメント制御が STRCMTCTL コマンドを使用して開始された時には、 システムはコミットメント定義を作成します。 コミットメント定義には、そのジョブ内のコミットメント制御下で変更中の資 源に関係する情報が入っています。 各コミットメント定義は、STRCMTCTL コマンドを出したジョブにだけ知らされ 、ENDCMTCTL コマンドを出した時に終了します。

コミットメント定義の有効範囲は、ジョブ内でそのコミットメント定義を使用 するプログラムを示します。 コミットメント定義は、活動化グループ・レベルまたはジョブ・レベルまで拡 大することができます。

コミットメント定義のデフォルトの有効範囲は、STRCMTCTL コマンドを出した プログラムの活動化グループ、すなわち活動化グループ・レベルです。 その活動化グループ内で実行するプログラムだけが、そのコミットメント定義 を使用します。 OPM は、*DFTACTGRP コミットメント定義を使います。ILE プログラムは、関連する活動化グループを使います。

STRCMTCTL コマンドのコミットメントの有効範囲 (CMTSCOPE) パラメーターに コミットメント定義の有効範囲を指定します。 ILE 内のコミットメント制御有効範囲の 詳細は、「ILE 概念」の「データ管理の有効範囲」を参照してください。