On the STRCMTCTL command, you specify a level of locking, either LCKLVL(*ALL),
LCKLVL(*CHG), or LCKLVL(*CS). When your program is operating under commitment
control and has processed an input or output operation on a record in a file
under commitment control, the record is locked by commitment control as follows:
Your program can access the record.
Another program in your activation group or job, with this file under
commitment control, can read the record. If the file is a shared file, the
second program can also update the record.
Another program in your activation group or job that does not have this
file under commitment control cannot read or update the record.
Another program in a separate activation group or job, with this file
under commitment control, can read the record if you specified LCKLVL(*CHG),
but it cannot read the record if you specified LCKLVL(*ALL). With either lock
level, the next program cannot update the record.
Another program that does not have this file under commitment control
and that is not in your activation group or job can read but not update the
record.
Commitment control locks are different than normal locks, depend on the
LCKLVL specified, and can only be released by the COMMIT and ROLBK operations.
The COMMIT and ROLBK operations release the locks on the records.
The UNLOCK operation will not release records locked using commitment control.
For details on lock levels, see the CL and APIs section
of the Programming category in the i5/OS Information Center at this Web site - http://www.ibm.com/systems/i/infocenter/.
The number of entries that can be locked under commitment control before
the COMMIT or ROLBK operations are required may be limited. For more information,
see the Recovering your system manual.
Note:
The SETLL and SETGT operations
will lock a record in the same cases where a read operation (not for update)
would lock a record for commitment control.