Returning a value in DYRRETC has no effect when the routing program is invoked
for notification, routing complete, transaction initiation, transaction termination, or
abend.
If an error occurs in route selection
If an error occurs in route selection—for example, if the sysid returned by the
distributed routing program is unavailable or unknown—the routing program is
invoked again. When this happens, you have a choice of actions:
1. Youcan try to route the request to a different target region, by changing the
sysid, and issuing a return code of ‘0’ in DYRRETC.
If this region too is unavailable, the routing program is again invoked for a route
selection error.A count of the times the routing program has been invoked for
routing purposes for this request is passed in field DYRCOUNT.Use this count
to help you decide when to stop trying to route the request.
2. Youcan tell CICS not to continue trying to route the request, by issuing a
non-zero return code in DYRRETC.
Using the XICERES exit to check the availability of resources on the
target region
Youcan use an XICERES global user exit program to check that all resources
required by the started transaction are available on the target region.
Touse the XICERES exit, both the routing region and the target region must
support the “resource unavailable” condition (RESUNAVAIL).All the following
support the “resource unavailable” condition:
vCICS TS OS/390, Version 1.3, withAPAR PQ73107 applied
vCICS TS for z/OS, Version 2.2, withAPAR PQ74920 applied
vCICS TS for z/OS, Version 2.3 and later
The XICERES exit is invoked, if enabled, on the target region before CICS
processes a dynamically-routed STARTrequest.
If, for example, the transaction to be started is disabled on the target region, or a
required file is missing, your exit program can give the distributed routing program
the opportunity to route the request to a different region. Todo this, it should set a
return code of UERCRESU. This causes CICS to:
1. Return a RESUNAVAILcondition on the EXEC CICS START command
executed by the mirror on the target region. (This condition is not returned to
the application program.)
2. Set the DYRERROR field of the routing program’s communications area to
'F'—resource unavailable.
3. Reinvoke the routing program, on the routing region, for route selection
failure—see “If an error occurs in route selection.”
For information about writing an XICERES global user exit program, see The
XICERES global user exit.
If a required resource is unavailable on the target region, but the XICERES exit is
unavailable or disabled (or is enabled but does not set the UERCRESU return
code), the client program receives an error response.
640 Customization Guide