Error conditions
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.
Parent topic:
Commitment control errors