IBM Support

Resolving ENQUEUE waits in CICS by finding tasks that own the enqueues

Question & Answer


Question

The Dispatacher domain in my CICS dump shows tasks waiting on an ENQUEUE. How can I tell what the enqueue name is, and which task currently owns the enqueue?

Answer

In the Dispatcher domain's Task summary (VERBX DFHPDxxx 'DS=1'), note the RESOURCE_NAME associated with the Enqueue. For instance, you may see 'ENQUEUE FCDSRECD' so the RESOURCE_NAME is FCDSRECD.

Format the Enqueue domain with VERBX DFHPDxxx 'NQ' (where xxx is your release level of CICS like 690 for CICS TS 5.2).

Do a FIND command for the RESOURCE_NAME you identified in the Dispatcher domain, like FCDSRECD. This should bring you to the Enqueue Pool Summary for that particular resource name.

For example, here is the Owner/Waiter portion of the Enqueue Pool summary for FCDSRECD:

alt text

In this example, there are 5 tasks waiting on the Enqueue. The Enqueue name is 'AAAA' or x'C1C1C1C1'. The owner of the Enqueue is a READ transaction, task# 00147.

If the full Enqueue name is too long to fit here in the summary, it can be found in the NQEA control block. The NQEA address for each task is also provided above in the Enqueue Pool summary.

For this example, the owner's NQEA is at 13846380. If you have formatted the NQ domain control blocks (with VERBX DFHPDxxx 'NQ=3'), you can do a FIND command to get to the NQEA control block.

Here is the owner's NQEA. The full Enqueue name can be seen at offset x'60':

`alt text`

Note that an Enqueue of type FCDSRECD is a file record lock. The first part of the Enqueue Name listed in the NQ Pool summary corresponds to the address of the Dataset Name block (DSNB). You can format the File Control blocks and summaries with VERBX DFHPDxxx 'FCP' to see what dataset is involved.

In the example above, address 14EB14D0 is listed as the first part of the Enqueue Name. In the File Control formatted output, you can do a FIND command for the address of the DSNB address to determine the Filename. In this case, a search for "14EB14D0" returns the DSNB for file BIGD:

alt text

The full dataset name can be found with a repeat FIND request, also in the FCP formatted output:

alt text

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Platform":[{"code":"PF035","label":"z\/OS"}],"Component":"ENQUEUE","Version":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Product Synonym

CICS/TS CICSTS CICS TS CICS Transaction Server

Document Information

Modified date:
10 June 2016

UID

dwa1167969