コミットメント制御の使用例
この例は、プログラムをコミットメント制御の下で機能させるために必要な仕 様および CL コマンドを説明したものです。
コミットメント制御の使用を準備するためには、次の CL コマンドを出してく
ださい。
- CRTJRNRCV JRNRCV(RECEIVER)
このコマンドはジャーナル・レシーバー RECEIVER を作成します。
- CRTJRN JRN(JOURNAL) JRNRCV(RECEIVER)
このコマンドはジャーナル JOURNAL を作成し、ジャーナル・レシーバー RECEIVER を接続します。
- 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 という名前) をコミットメント制御の下で機能させるた
めには、次のコマンドを出します。
- STRCMTCTL LCKLVL(*ALL)
このコマンドは、最高レベルのロックでコミットメント制御を開始します。
- CALL REVISE
このコマンドはプログラム REVISE を呼び出します。
- ENDCMTCTL
このコマンドはコミットメント制御を終了し、暗黙ロールバック操作を行い ます。