Failure of normal commit or rollback processing

Errors might occur at any time during commit or rollback processing.

The following table divides this processing into four situations. The middle column describes the actions taken by the system when it encounters errors during each situation. The third column suggests what you or your application must do in response to the messages. These suggestions are consistent with the way commitment control processing is handled by the system.

Situation Commit or rollback processing Suggested action
Record-level I/O commit fails
  • If the error occurs during the prepare wave, the transaction is rolled back and message CPF83DB is sent.
  • If the error occurs during the committed wave, commit processing continues to commit as many remaining resources as possible. Message CPF8363 is sent at the end of commit processing.
Monitor for messages; handle as you want
Object-level or commit and rollback exit program for API commitment resource fails during commit
  • If the error occurs during the prepare wave, the transaction is rolled back and message CPF83DB is sent.
  • If the error occurs during the committed wave, processing continues to commit or roll back as many remaining resources as possible. One of the following messages is returned, depending on the commitment resource type:
    • CPD8353
    • CPD8354
    • CPD8355
    • CPD8361

    Message CPF8363 is sent at the end of commit processing.

Monitor for messages; handle as you want
Record-level I/O rollback fails
  1. Returns CPD8356
  2. Attempt to continue processing to rollback object-level or API commitment resources
  3. Returns CPF8359 at end of processing
Monitor for messages; handle as you want
Object-level or commit and rollback exit program for API commitment resources fails during rollback
  1. Returns one of the following messages depending on the commitment resource type:
    • CPD8358
    • CPD8359
    • CPD835A
    • CPD8362
  2. Continues processing
  3. Returns CPF8359 at end of processing
Monitor for messages; handle as you want

Commit or rollback processing during job end

All of the situations described in the previous table also apply when a job is ending except that one of the following messages is sent:

In addition, one of two messages might appear specific to job completion if a commit and rollback exit program for an API committable resource has been called. If the commit and rollback exit program does not complete within 5 minutes, the program is canceled; a diagnostic message CPD8363 (for commit) or CPD8364 (for rollback) is sent; and the remainder of the commit or rollback processing continues.

Commit or rollback processing during IPL

All of the situations described in the previous table also apply during IPL recovery for commitment definitions except that message CPF835F is sent instead of message CPF8359 or CPF8363. Messages that get sent for a particular commitment definition might appear in the job log for one of the QDBSRVxx jobs or the QHST log. In the QHST log, message CPI8356 indicates the beginning of IPL recovery for a particular commitment definition. Message CPC8351 indicates the end of IPL recovery for a particular commitment definition and any other messages regarding the recovery of that commitment definition is found between those two messages.

One of two messages might appear specific to a commitment definition if a commit and rollback exit program for an API committable resource has been called. If the commit and rollback exit program does not complete within 5 minutes, the program is canceled; a diagnostic message CPD8363 (for commit) or CPD8364 (for rollback) is sent; and the remainder of the commit or rollback processing continues.