ENQ Contention on CA Dispatch archive and extract subtasks
search cancel

ENQ Contention on CA Dispatch archive and extract subtasks

book

Article ID: 91704

calendar_today

Updated On:

Products

Dispatch Output Mgmt

Issue/Introduction

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? 

Environment

z/os, Dispatch, 11.6, 11.7
 

Resolution

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! 

Additional Information

CA Dispatch System Programmers Guide, Troubleshooting, ENQ Usage for Task Control