コミットメント制御の使用例

この例は、プログラムをコミットメント制御の下で機能させるために必要な仕 様および CL コマンドを説明したものです。

コミットメント制御の使用を準備するためには、次の CL コマンドを出してく ださい。
  1. CRTJRNRCV JRNRCV(RECEIVER)

    このコマンドはジャーナル・レシーバー RECEIVER を作成します。

  2. CRTJRN JRN(JOURNAL) JRNRCV(RECEIVER)

    このコマンドはジャーナル JOURNAL を作成し、ジャーナル・レシーバー RECEIVER を接続します。

  3. STRJRNPF FILE(MASTER TRANS) JRN(JOURNAL)

    このコマンドはファイル MASTER およびファイル TRANS のジャーナル項目を ジャーナル JOURNAL に入れます。

プログラムでは、ファイル MASTER およびファイル TRANS に COMMIT を指定し ます。

図 1. コミットメント制御の使用例
*.. 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 という名前) をコミットメント制御の下で機能させるた めには、次のコマンドを出します。
  1. STRCMTCTL LCKLVL(*ALL)

    このコマンドは、最高レベルのロックでコミットメント制御を開始します。

  2. CALL REVISE

    このコマンドはプログラム REVISE を呼び出します。

  3. ENDCMTCTL

    このコマンドはコミットメント制御を終了し、暗黙ロールバック操作を行い ます。