Using Commitment Control
Using Commitment Control
This section describes how to use commitment control to process file operations as
a group. With commitment control, you ensure one of two outcomes for the file
operations:
all of the file operations are successful (a commit operation)
none of the file operations has any effect (a rollback operation).
In this way, you process a group of operations as a unit.
To use commitment control, you do the following:
On the AS/400:
1. Prepare for using commitment control:. Use the CL commands CRTJRN
(Create Journal), CRTJRNRCV (Create Journal Receiver) and STRJRNPF
(Start Journal Physical File).
2. Notify the AS/400 when to start and end commitment control: Use the CL
commands STRCMTCTL (Start Commitment Control) and ENDCMTCTL
(End Commitment Control). See the
CL Reference (Abridged)
for informa-
tion on these commands.
In the RPG program:
1. Specify commitment control (COMMIT) on the file-description specifications
of the files you want under commitment control.
2. Use the COMMIT (commit) operation code to apply a group of changes to
files under commitment control, or use the ROLBK (Roll Back) operation
code to eliminate the pending group of changes to files under commitment
control. For information on how the rollback function is performed by the
system, refer to the
Backup and Recovery
manual.
Note: Commitment control applies only to database files.
Starting and Ending Commitment Control
The CL command STRCMTCTL notifies the system that you want to start commit-
ment control.
The LCKLVL(Lock Level) parameter allows you to select the level at which records
are locked under commitment control. See “Commitment Control Locks” on
page 308 and the
CL Programming
manual for further details on lock levels.
You can make commitment control conditional, in the sense that the decision
whether to process a file under commitment control is made at run time. For further
information, see “Specifying Conditional Commitment Control” on page 311.
When you complete a group of changes with a COMMIT operation, you can specify
a label to identify the end of the group. In the event of an abnormal job end, this
identification label is written to a file, message queue, or data area so that you
know which group of changes is the last group to be completed successfully. You
specify this file, message queue, or data area on the STRCMTCTL command.
Before you call any program that processes files specified for commitment control,
issue the STRCMTCTL command. If you call a program that opens a file specified
Chapter 16. Accessing Database Files 307