COMMIT 命令は、コミットメント制御下にあるファイルに対する一群の変更を完 了したことをシステムに通知します。 ROLBK 命令は、コミットメント制御下にあるファイルに対する現行グループの 変更を除去します。 これらの命令コードの指定方法および各命令コードの機能については 、「WebSphere Development Studio: ILE RPG 言語解説書」を参照してください。
システム障害の場合には、システムは暗黙に ROLBK 命令を出します。 COMMIT 命令コードの 演算項目 1 に指定したラベル、および STRCMTCTL コマンドに 指定した通知オブジェクトを使用して、正常に完了して いる最後の変更グループの識別を検査することができます。
活動化グループまたはジョブの終わり、あるいは ENDCMTCTL コマンドを出した時には、i5/OS システムは暗黙の ROLBK を出し、これによって、最後に ROLBK または COMMIT 命令が出された後の変更が除去されます。すべてのファイル命令が確実に実行されるようにするには、 コミットメント制御の下で実行している活動化グループまたはジョブの 終了前に、COMMIT 命令を出してください。
OPEN 命令はファイルに対してなされる入出力操作を許可し、CLOSE 命令はファイルに対して なされる入出力操作を停止します。 しかし、OPEN および CLOSE 命令は、COMMIT および ROLBK 命令に 影響しません。 COMMIT または ROLBK 命令は、ファイルがクローズされた後でもファイルに影 響します。 例えば、プログラムに次のステップを組み込むことができます。
ステップ 3 で行われた変更は、ステップ 4 でファイルがクローズされていた としても、ステップ 5 の ROLBK 命令によってロールバックされます。ROLBK 命令は同じ 活動化グループまたはジョブ内の別のプログラムから出すことができます。
プログラムがすべてのファイルをコミットメント制御の下で処理しなければ ならないということはありませんし、また、そうすることによって、かえって パフォーマンスが落ちてしまう場合もあります。 COMMIT および ROLBK 命令は、コミットメント制御下にないファイルには影響を 与えません。
この例は、プログラムをコミットメント制御の下で機能させるために必要な仕 様および CL コマンドを説明したものです。
コミットメント制御の使用を準備するためには、次の CL コマンドを出してく ださい。
このコマンドはジャーナル・レシーバー RECEIVER を作成します。
このコマンドはジャーナル JOURNAL を作成し、ジャーナル・レシーバー RECEIVER を接続します。
このコマンドはファイル MASTER およびファイル TRANS のジャーナル項目を ジャーナル JOURNAL に入れます。
プログラムでは、ファイル MASTER およびファイル TRANS に COMMIT を指定し ます。
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... * FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++ FMASTER UF E K DISK COMMIT FTRANS UF E K DISK COMMIT F*
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... * CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq.... C : C : * * 一連の命令が正常に完了した場合には COMMIT 命令を使用し、 * 正常に完了しなかった場合は変更を * ロールバックします。 * C UPDATE MAST_REC 90 C UPDATE TRAN_REC 91 C IF *IN90 OR *IN91 C ROLBK C ELSE C COMMIT C ENDIF
プログラム (REVISE という名前) をコミットメント制御の下で機能させるた めには、次のコマンドを出します。
このコマンドは、最高レベルのロックでコミットメント制御を開始します。
このコマンドはプログラム REVISE を呼び出します。
このコマンドはコミットメント制御を終了し、暗黙ロールバック操作を行い ます。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.