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


Passing Information to the Contention Exit

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

The contention exit receives control because a new request has been added to the resource request queue, because of previous actions of the contention exit, or in reaction to certain recovery processing (for example, when contention management responsibility is reassigned after the prior manager failed.) XES communicates with the contention exit through the contention exit parameter list — the CEPL, mapped by the macro IXLYCEPL. The CEPL that is passed to the contention exit contains an image of the resource request queue for the resource being managed, as well as summary information about the contention. Each current resource owner and waiter is reflected in the CEPL.

When the system first chooses a connected user to manage a resource that is in contention, a 32-byte work area, CEPLWORK, in the CEPL is set to zero. This work area is for the use of the managing connected user with any updates persisting across contention exit invocations until this instance of contention management has ended.

Each CEPL entry on the resource request queue also has an associated 32-byte work area, CEPLEWORK, that is shared with the notify exit of the connector represented by that entry. That is, if the notify exit of a connector is executed, the contents of the CEPLEWORK field from the requesting contention exit will be presented to the notify exit in the NEPL work area (NEPLWORK). Similarly, any updates made to the area by the notify exit will be added to the queue and presented to the contention exit. This provides the contention exit the ability to communicate with the notify exits of all the resource owners reflected on the request queue. When the resource request is first presented to the contention exit, the system sets this work area to zero. The contention exit can modify data in this work area and the data will be presented to subsequent invocations of the contention exit while contention for the resource continues to exist. (As with CEPLWORK, the CEPLEWORK work area persists across contention exit invocations.) This work area also appears in the notify exit parameter list (NEPL), if the notify exit is called. Any updates made to the work area during either notify exit processing or contention exit processing will be reflected in subsequent invocations of each exit while contention for the resource exists.

The CEPL contains a header section containing general information about the resource and the resource request and a section containing an entry for each request, either held or pending, for the resource. The CEPL information includes:
  • Header information
    • Information about the resource in contention (CEPLRNAME@, CEPLRNAMELEN, CEPLHASHVAL)
    • Flags to indicate why the exit received control and whether the structure is being rebuilt (CEPLREASONFLAGS, CEPLREBUILD, CEPLREBUILDORIG)
    • A workarea for use by the contention exit (CEPLWORK)
    • A return code field by which the contention exit can communicate with XES (CEPLRETCODE)
    • Summary information about all entries on the request queue:
      • Total number of resource owners and waiters (CEPLENT#)
      • Number of new requests currently on the queue (CEPLNEW#)
      • Address of any new entry on the queue (CEPLNEW@)
      • Address of the first entry on the queue (CEPLENT@).
  • Entry information. There is a CEPLENT entry for each resource request, both owned and pending. The CEPLENT data includes:
    • Information about the owner or waiter for the resource (CEPLCONVERSION, CEPLCONID, CEPLCONNAME)
    • Ownership status flag indicating whether resource is owned or pending (CEPLESTATUSFLAGS)
    • Action flag, to be set by the contention exit, to indicate to XES what action should be taken for the request when the contention exit completes (CEPLEACTIONFLAGS)
    • Owned state and user data for resources that are owned (CEPLEHELD)
    • Requested state, user data, and record data for resources that are pending update (CEPLEREQ)
    • Address of the next entry on the queue (CEPLENEXT)
    • A workarea for use by both the contention and the notify exits (CEPLEWORK).

See z/OS® MVS™ Data Areas in the z/OS Internet library for the IXLYCEPL macro.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014