We've had a problem with external archive and extract tasks on "DISPTEST" and external archive and extract on "DISPPROD" being in contention with each other. We've tried to stop and restart the tasks in both DISPTEST and DISPPROD without success. We have not seen any errors in either of the CA Dispatch started tasks nor in the logs from the external archive or external extract subtasks that would justify or explain the reason for the contention.
An Enqueue Conflicts display shows the following:
S=SYSTEM DSA1REQ CVNO01SVCNO161
SYSNAME JOBNAME ASID TCBADDR EXC/SHR STATUS
SYSH DISPATCH 0111 00AF8058 EXCLUSIVE OWN
SYSH DISPXTAR 011B 00AC9A68 EXCLUSIVE WAIT
S=SYSTEM DSA1REQ CVNO03SVCNO161
SYSNAME JOBNAME ASID TCBADDR EXC/SHR STATUS
SYSH DISPTEST 0112 00AF8058 EXCLUSIVE OWN
SYSH TESTXTAR 0020 00AC8A68 EXCLUSIVE WAIT
S=SYSTEM DSEXREQ CVNO01SVCNO161
SYSNAME JOBNAME ASID TCBADDR EXC/SHR STATUS
SYSH DISPATCH 0111 00AF8058 EXCLUSIVE OWN
SYSH DISPXTEX 00F3 00AC9A68 EXCLUSIVE WAIT
S=SYSTEM DSEXREQ CVNO03SVCNO161
SYSNAME JOBNAME ASID TCBADDR EXC/SHR STATUS
SYSH DISPTEST 0112 00AF8058 EXCLUSIVE OWN
SYSH TESTXTEX 00D4 00AC8A68 EXCLUSIVE WAIT
Is there a way to prevent the external subtasks of CA Dispatch from being in contention with each other?
z/os, Dispatch, 11.6, 11.7
What you are seeing in this Enqueue Conflicts display is NORMAL and to be expected. While it may appear as an Enqueue "CONFLICT", it is in fact not a conflict, in the sense that it does not mean you are having a performance problem or that the associated Dispatch systems and tasks are deadlocking on each other. It appears this way as a result of the way Dispatch uses ENQ's for communication between the MAIN Dispatch region and the EXTERNAL subtasks associated to that MAIN region.
CA Dispatch makes use of many ENQs to ensure proper task control. The resource being controlled in this case is a task, NOT a data set. For every external task that is started, an ENQ conflict indeed occurs. This is a normal condition and is NOT an indication of a performance problem.
The following ENQs are used for task control:
QNAME RNAME TASK
DSA1ACT CVNO##SVCNO### ARCH1
DSA2ACT CVNO##SVCNO### ARCH2
DSA3ACT CVNO##SVCNO### ARCH3
DSA1REQ CVNO##SVCNO### ARCH1
DSA2REQ CVNO##SVCNO### ARCH2
DSA3REQ CVNO##SVCNO### ARCH3
DSEXACT CVNO##SVCNO### EXTRACT
DSEXREQ CVNO##SVCNO### EXTRACT
userid CVNO##SVCNO### PC
ACIFRDR CVNO##SVCNO### ACIF
If actual conflicts occur with these database access ENQs, check the appropriate database files for I/O contention.
The RNAME is unique for each CA Dispatch system and these ENQs need not be propagated across systems using GRS or other software.
Notes:
- CA Dispatch does not issue RESERVEs.
- If your site uses products like MIMS or GRS and you run multiple CA Dispatch regions, the ENQs listed above should be coded into your ENQ management product's “exclusion” list variables. The purpose of adding the Dispatch ENQ's to an exclusion list is to prevent "conflict notification messages" from appearing on the SYSTEM console. Adding the Dispatch ENQ's to your GRS/MIMS product's “exclusion list" does NOT change the way the Dispatch related Enqueue Conflicts will be displayed. They will still show as conflicts, even though they really aren't!