If the queue limit has been reached but the performance of allocate processing
against the queue is below the acceptable limits defined in your user exit
program, you can return control to CICS as follows:
v For non-specific allocate requests, use return code UERCAKLL. UERCAKLL
also returns SYSIDERR to all application programs waiting on the purged
allocate requests. CICS sets the UEPFLAG parameter to UEPRC8 on
subsequent calls to your XZIQUE exit program to indicate that UERCAKLL
was returned previously to purge the queue.
v For specific modegroup allocate requests, use return code UERCAKLM.
UERCAKLM also returns SYSIDERR to all application programs waiting on
the purged allocate requests. CICS sets the UEPFLAG parameter to
UEPRC12 on subsequent calls to your XZIQUE exit program to indicate that
UERCAKLM was returned previously to purge the queue.
Purging a queue that is causing congestion in the flow of tasks frees task slots
that are needed to prevent the system becoming clogged. The more you allow
a session queue to grow, the more likely you are to reach the task ceiling set by
the MAXT parameter, and then cause a queue of incoming tasks in the local
region that cannot be attached. Note that some internal CICS requests (such as
those for the LU services model transactions CLS1, CLS2, and CLS3) are not
purged by return codes UERCAKLL and UERCAKLM.
If a queue has been purged previously (with UERCAKLL or UERCAKLM) but
there are no queued requests currently, check the number of successful
allocates since the queue was last purged. For non-specific allocate requests,
this number is in UEPSARC8, and for specific modegroup requests, this
number is in UEPMAR12. If no requests of this type have been allocated on
this connection since the queue was last purged, the problem that caused the
purge previously has not been resolved, and this request should be rejected
with UERCAPUR.
If the UEPSARC8 or UEPMAR12 parameters show that allocates are being
processed, you should use UERCAQUE to resume queuing of requests. If you
return with UERCAQUE in this case, CICS issues an information message to
the console to signal that queuing has been resumed.
Note: The address of the system entry statistics record, UEPCONST, is supplied
for both non-specific and specific modegroup allocate requests.
The address of the modegroup statistics record, UEPMODST, is set to zeros
for non-specific allocate requests. This address is supplied only if the request
is for a specific modegroup.
If the exit is invoked after a successful allocate following the suppression of
queuing, you can use the following return code:
UERCNORM
This return code indicates that CICS is to resume normal processing on the
link, including queuing of requests.
Statistics fields in DFHA14DS and DFHA20DS
There are some statistics fields that your XZIQUE global user exit program can use
to control queues.
VTAM working-set module exits
Chapter 1. Global user exit programs 239