If an error occurs, an escape message that you can monitor for
in a program is sent.
Here are some typical errors related to commitment control:
- Consecutive STRCMTCTL commands are run without an intervening ENDCMTCTL
command.
- Files are opened under commitment control, but no STRCMTCTL command was
run.
This is not an error condition for programs that run within an activation
group that are to use the job-level commitment definition. The job-level commitment
definition can be started only by a single program, but when started by a
program, the job-level commitment definition is used by any program running
in any activation group that is not using an activation-group-level commitment
definition. Programs that run within an activation group that are to use the
activation-group-level commitment definition must first start the activation-group-level
commitment definition with the STRCMTCTL command.
- Files that are opened for output under commitment control are not journaled.
- The first open operation of a shared file places the file under commitment
control, but subsequent open operations of the same shared file do not.
- The first open operation of a shared file does not place the file under
commitment control, but subsequent open operations of the same shared file
do.
- The record lock limit for the job is reached in a single transaction.
- The program issues a read operation, a commit operation, and a change
to the same record. The read operation must be issued again after the commit
operation because the commit operation has freed the lock on the record.
- For a one-phase location, resources placed under commitment control do
not reside at the same location as resources already under commitment control
for the commitment definition.
- Uncommitted changes exist when an ENDCMTCTL command is issued.
This
is not an error condition for the ENDCMTCTL command if all files are closed,
any remote database is disconnected, and no API commitment resource is still
associated with the commitment definition to be ended.
- A commit, rollback, or ENDCMTCTL command is run, and a STRCMTCTL command
was not run.
This is not an error condition for programs that run within
an activation group and the job-level commitment definition is active. The
job-level commitment definition can be started only by a single program, but
when started by a program, the job-level commitment definition is used by
any program running in any activation group that is not using an activation-group-level
commitment definition. Programs that run within an activation group and are
to use the activation-group-level commitment definition must first start the
activation-group-level commitment definition with the STRCMTCTL command.
- An ENDCMTCTL command is run with files still open under commitment control
for the commitment definition.
- A job performing a save operation has one or more commitment definitions
that are not at a commitment boundary.
- A save-while-active operation ended because other jobs with committable
resources did not reach a commitment boundary in the time specified for the
SAVACTWAIT parameter.
- A save-while-active process was not able to continue because of API committable
resources being added to more than one commitment definition for a single
job.
- More than 1023 commitment definitions exist for a single job.
- The conversation to a remote location is lost due to a resource failure.
This might cause the transaction to be rolled back.
- A one-phase resource that is opened for update is present at a node that
did not initiate the commit operation. You must remove either the resource
or the node that initiated the commit request.
- A commit operation is requested while the transaction is in rollback required
(RBR) state. A rollback operation must be done.
- An API exit program issues a commit request or a rollback request.
- A trigger program issues a commit request or a rollback request for the
commitment definition under which the trigger program was called.
The trigger program can start a separate commitment definition and issue
a commit or rollback request for that definition.