z/OS MVS Programming: Sysplex Services Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Continue Contention Management

z/OS MVS Programming: Sysplex Services Guide
SA23-1400-00

Subsequent to its first invocation of the contention exit, XES may invoke the exit at each of the following times while the connector remains the contention manager:
  • A new request is received for the resource while contention exists

    Once the entries on a resource request queue have been determined to be incompatible and as long as the incompatible condition exists, any new request for the resource causes the contention exit to be given control. Note that XES determines the state of the resource request queue after all actions specified during the previous invocation of the contention exit have been performed.

  • The completion of notify exits

    When a resource request queue is presented to the contention exit, the connected user that is managing the contention can indicate that the notify exit of resource owners be scheduled for processing. After all specified notify exits have completed, the contention exit is again given control. The resource request queue reflects the changes, if any, that connected users made to their ownership of the resource in the notify exit.

    Note that the contention exit may supply a return code specifying that if the results of notify exit processing cause contention to cease, XES is not to redrive the contention exit.

  • Failure of a previous grant request

    If XES is unable to grant a pending request as specified by the contention exit, XES redrives the contention exit with an indication in the CEPL of the failure. Among the reasons for the failure to grant the request are an associated record data entry operation which could not be completed or a loss of connectivity to the lock structure.

    The resource request queue presented to the contention exit reflects all updates made in the previous invocation of the exit, but may or may not contain an entry for the user whose request has failed.
    • If the failed request was for a resource that was not previously owned, the updated resource request queue will not contain an entry for the failed request.
    • If the failed request was to update (ALTER) an already owned resource, the updated resource request queue will contain an entry for the resource that reflects the ownership state of the resource before the failed attempt to update it.
    Note: Any requests to execute notify exits that were made during the invocation of the contention exit which specified to grant a request are cancelled.
  • During recovery processing for a failed connection

    XES removes entries representing a failed or disconnected user from all resource request queues as part of its cleanup processing. If cleanup occurs for a request queue that is being managed by a surviving connected user then the updated request queue is presented to the contention exit of that user with an indication that recovery has occurred.

    Note that XES will not interrupt the normal processing flow to inform the contention exit that a failure has occurred. For example, if a contention exit is waiting for responses from notify exits to complete at the time that cleanup is being performed on the resource request queue then the contention exit will be informed of the failure at the time that it is invoked with the results of the notify exits. In this case, the contention exit parameter list will indicate that the queue reflects results of notify exit processing, as well as recovery actions.

    In summary, the contention exit may be informed of a change in the resource request queue due to failures during any invocation. This includes when the exit is called for normal processing such as presentation of new requests and results of notify exit processing, as well as through a separate invocation when the failure represents the only change in the queue. If an application's protocol calls for its contention exit to be sensitive to failures of related users, the exit should check the failure indicator (CEPLRECOVERY) during each invocation of the exit.

    Note that the CEPLREASONFLAGS indicate why the contention exit has been given control. The CEPLNOTIFYRESPONSE, CEPLGRANTFAILED, and CEPLRESTARTAFTERDEFER flags are mutually exclusive. However, it is possible for the CEPLRECOVERY flag to be set to ON in conjunction with one of the other CEPLREASONFLAGS.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014