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 distributed routing program is invoked again.
When the program is re-invoked, you have a choice of actions:
- 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.
- You can tell CICS® to treat the request as “unserviceable”,
by issuing a non-zero return code in DYRRETC. Sometimes, perhaps because of a transaction affinity, it is essential that an activity should execute on a particular target region, and on no other. If this is the case, and the target region is unavailable, classify the request as unserviceable. Instead of reinvoking the routing program for a route selection error, CICS:
- Tries repeatedly to route the request to the specified target
region, at 1-minute intervals.
If one of these attempts is successful, CICS issues message DFHSH0108. The routing program is invoked on the routing region for “routing attempt complete”, and, if specified, on the target region for “transaction initiation”.
- Every hour, if the target region is still unavailable, issues message DFHSH0106.
- If the target region is still unavailable 24 hours after the request was issued, issues message DFHSH0107, and stops trying to route the request, which is discarded. The routing program is invoked on the routing region for “routing attempt complete”.
- Tries repeatedly to route the request to the specified target
region, at 1-minute intervals.