Intra-address space ENQ conflicts

Document ID : KB000023048
Last Modified Date : 14/02/2018
Show Technical Document Details

Question:

ECMF is the facility of CA MII which reports on ENQ conflicts. Occasionally, you may see ECMF messages reporting that a job is in conflict with itself. How can you determine whether this is a valid condition?

Answer:

A task is a dispatchable unit of work in z/OS. z/OS address spaces are comprised of multiple tasks, with z/OS representing a task internally with a Task Control Block (TCB).

The z/OS ENQ facility is a task level service. Since tasks can execute asynchronously, it is possible for different tasks in the same address space to request the same shared resource by using the ENQ facility. If different tasks in the same address space request the same resource, and at least 1 of the tasks requests exclusive control, an intra-address space ENQ conflict occurs.

An intra-address space conflict can occur for resources that are serialized with any SCOPE. However, ECMF reports ENQ conflicts only for resources that are serialized with SCOPE of SYSTEM and SYSTEMS, never for SCOPE of STEP. An intra-address space ENQ conflict can occur for all types of address spaces, including started task (STC) address spaces, TSO users, and batch jobs running in initiators.

A common example of an intra-address space ENQ conflict occurs in a TSO/ISPF address space. An ISPF user who is editing a PDS member will own an exclusive SPFEDIT ENQ on that member. If the user splits the screen, a new task (represented by a new TCB) is created in the address space. If the user tries to edit the same PDS member from the new screen, an ENQ conflict occurs between these 2 tasks in the TSO user address space.

The CA MII ENQ trace facility is a useful means of collecting detailed information on ENQs that are issued, and it can be used to diagnose an intra-address space ENQ conflict. The MIM1060 trace records include the TCB address of any task which issues an ENQ. These records allow you to understand which tasks in an address space are contending for the same shared resource.

If you see ECMF messages stating that a job is in conflict with itself, that is a valid condition that occurs when different tasks in the same address space serially request the same shared resource.