Ensuring two-phase commit integrity

Complete or cancel all pending resynchronizations of commitment control definitions before you replace your software.

You need to perform this task only if both of the following are true:

Two-phase commit support is used when an application updates database files on more than one system. Two-phase commit support ensures that the databases remained synchronized. If you are not sure whether your system uses two-phase commit support, perform steps 1 and 2. You might need to continue with the rest of the procedure.

Remember that any actions you take with respect to a pending resynchronization affect the other systems that are participating in the logical unit of work (transaction) with your system. Therefore, you or someone else will also need to handle pending resynchronizations on the connected systems before you begin your upgrade procedure.

If you perform this procedure 1 or 2 days before you install the new release, you should recheck for resynchronizations before starting the installation.

To work with pending resynchronizations on your source system, do the following:

  1. To display all commitment definitions that might require resynchronization, type the following Work with Commitment Definitions (WRKCMTDFN) command:
    WRKCMTDFN JOB(*ALL) STATUS(*RESYNC)
  2. If you see the message, No commitment definitions are active, you can skip the rest of this procedure.
  3. On the Work with Commitment Definitions display, type 19 (Cancel Resync) in the Option column for each commitment definition. You see the Cancel Resync display.
  4. If the value in the column Resync Required is Yes for any remote location listed, then do the following for that location:
    1. Attempt an action, such as restarting communications, and allow the resynchronization to complete.
    2. If you cannot allow the resynchronization to complete, specify option 1 (Select) to cancel resynchronization to that remote location.

      You could receive message CPF83E4, which indicates that the logical unit of work is in an undecided state. You will have to make an educated decision to force either a commit operation or a rollback operation before you can successfully cancel resynchronization. These options are available from the Work with Commitment Definitions display.

      By canceling resynchronization, you could cause the databases between the two systems to be in an inconsistent state. You must then take the responsibility for determining the action taken by all the other locations that participated in this Logical Unit of Work (LUW), and resynchronize the database changes.

  5. Refresh the display periodically. When resynchronization for a commitment definition completes or cancels successfully, the value in the Resync in Progress column will be No.

    The resynchronization or a cancelation of resynchronization might not take place immediately. They are dependent on the state of the other systems that are participating in the logical unit of work.

For more information on commitment control and resynchronization, see the topic When to force commits and rollbacks and when to cancel resynchronization .