If the system is unavailable or unknown
The dynamic routing program is invoked again if the remote system name that you specify on the route selection call is not known or is unavailable.
When the program is re-invoked, you have a choice of actions:
- You can tell CICS® not to continue trying to route the transaction, by issuing a return code of '8' in DYRRETC. If the reason for the error is that the system is unavailable, CICS issues message 'DFHAC2014' or 'DFHAC2029' to the terminal user. If the reason for the error is that the system is unknown, DFHAPRT abends the transaction.
- You can tell CICS to terminate the transaction without issuing a message or abend by placing a return code of '4' in DYRRETC. However, note the warning about setting return code '4'.
- If the reason for the error is that no sessions are immediately
available to the remote system, you can reset field DYRQUEUE to 'Y'
(it must previously have been set to 'N'—the request is not to
be queued—for this error to occur), issue a return code of '0'
in DYRRETC, and try to route the transaction again.
If you try to route the transaction again without resetting DYRQUEUE to 'Y' (and without changing the sysid), and the system is still unavailable, DFHDYP is reinvoked. If you then choose to set return code '8', CICS terminates the transaction with message 'DFHAC2030'.
- You can change the sysid, and issue a return code of ‘0' in DYRRETC to try to route the transaction again. Note that if you change the sysid, you may also need to supply a different remote transaction ID. You need to do this if, for example, the transaction has a different remote transaction name on each system.
A count of the times the routing program has been invoked for routing purposes for this transaction is passed in field DYRCOUNT. Use this count to help you decide when to stop trying to route the transaction.