Using the information passed in the parameter list, your global user exit program
can decide (based on queue length, for example) whether CICS is to queue the
allocate request. Your program communicates its decision to CICS by means of one
of the return codes CICS provides. These are:
UERCAQUE
This return code indicates that CICS is to queue the allocate request.
The total number of allocate requests queued against the connection is
provided in field A14ESTAQ of the system entry statistics (for all non-specific
allocates) or A20ESTAQ of the mode entry statistics (for specific modegroup
allocates). See DSECTs DFHA14DS or DFHA20DS for details. CICS passes to
the exit program, in the exit specific parameter UEPQUELIM, the QUEUELIMIT
parameter from the connection definition.
If the limit has not been reached, you can return control to CICS with return
code UERCAQUE.
UERCAPUR
This return code indicates that CICS is to reject the allocate request and return
SYSIDERR to the application program, but leave the existing queue unchanged.
If the number of queued allocate requests has reached the limit set on the
QUEUELIMIT parameter for the connection, you can request that CICS rejects
the request. However, you should first check whether the state of the link is
satisfactory. This means checking that the rate of allocation of sessions is
acceptable. Use the time the queue was started, the current time, and the total
number of allocates processed since the queue began, to determine the rate at
which CICS is processing requests. The relevant fields are: UEPSAQTS and
UEPSACNT for non-specific allocate requests; and UEPMAQTS and
UEPMACNT for specific modegroup requests.
To determine whether CICS is allocating requests for sessions on this
connection at an acceptable rate, you can compare the calculated time with
either of the following:
1. The parameter from the connection definition, MAXQTIME, which is passed
in the exit specific parameter UEPEMXQT
2. Some other preset time value.
If the processing time using this kind of formula is acceptable, return control to
CICS with return code UERCAPUR to purge only this request.
UERCAKLL or UERCAKLM
These return codes indicate that you want CICS to deal with the request as
follows:
v UERCAKLL—reject this request, purge all other queued allocate requests on
this connection, and send an information message to the operator console.
v UERCAKLM—reject this request, purge all other queued modegroup allocate
requests on this connection, and send an information message to the
operator console.
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.
Chapter 1. Global user exit programs 251