End commitment control

You can find what prerequisites are necessary to end commitment control and how to end commitment control in this topic.

You can end commitment control for either the job-level or activation-group-level commitment definition using the End Commitment Control (ENDCMTCTL) command. Issuing the ENDCMTCTL command indicates to the system that the commitment definition in use by the program making the request is to be ended. The ENDCMTCTL command ends only one commitment definition for the job and all other commitment definitions for the job remain unchanged.

If the activation-group-level commitment definition is ended, then programs running within that activation group can no longer make changes under commitment control, unless the job-level commitment definition is already started for the job. If the job-level commitment definition is active, then it is immediately made available for use by the programs running within the activation group that just ended commitment control.

If the job-level commitment definition is ended, then any program running within the job that was using the job-level commitment definition can no longer make changes under commitment control without first starting commitment control again with the STRCMTCTL command.

Before issuing the ENDCMTCTL command, the following conditions must be satisfied for the commitment definition to be ended:

If commitment control is being ended in an interactive job and one or more committable resources associated with the commitment definition have pending changes, inquiry message CPA8350 is sent to the user asking whether to commit the pending changes, roll back the pending changes, or cancel the ENDCMTCTL request.

If commitment control is being ended in a batch job, and one or more closed files associated with the commitment definition to be ended still have pending changes, the changes are rolled back and a message is sent:

If a notify object is defined for the commitment definition being ended, it might be updated.

When an activation group that has an API registered as the last agent is ending, the exit program for the API is called to receive the commit or rollback decision. In this case, even though the activation group is ending normally, a rollback request can still be returned from the API exit program. Thus, the implicit commit operation might not be performed.

After the commitment definition has successfully ended, all the necessary recovery, if any, has been performed. No additional recovery is performed for the commitment resources associated with the commitment definition just ended.

After the commitment definition is ended, the job-level or activation-group-level commitment definition can then be started again for the programs running within the activation group. The job-level commitment definition can be started only if it is not already started for the job.

Although commitment definitions can be started and ended many times by the programs that run within an activation group, the amount of system resources required for the repeated start and end operations can cause a decrease in job performance and overall system performance. Therefore, it is recommended that a commitment definition be left active if a program to be called later will use it.

Related concepts
Updates to the notify object
Related reference
End Commitment Control (ENDCMTCTL) command