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. You can 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. You can 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
You can use an XICERES global user exit program to check that all resources
required by the started transaction are available on the target region.
To use 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:
v CICS TS OS/390, Version 1.3, with APAR PQ73107 applied
v CICS TS for z/OS, Version 2.2, with APAR PQ74920 applied
v CICS 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 START request.
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. To do this, it should set a
return code of UERCRESU. This causes CICS to:
1. Return a RESUNAVAIL condition 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