IBM SC34-6814-04 Server User Manual


 
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 this
happens, you have a choice of actions:
v 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.
v 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 above
warning about setting return code ‘4’.
v 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’.
v 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.
Invoking the dynamic routing program at end of routed transactions
If you want your dynamic routing program to be invoked again when the routed
transaction has completed, you must set the DYROPTER field in the
communications area to 'Y' before returning control to CICS. You might want to do
this, for example, if you are keeping a count of the number of transactions currently
executing on a particular CICS region. However, during this reinvocation, the
dynamic routing program should update only its own resources. This is because, at
this stage, the final command to the terminal from the application program in the
AOR may be pending, and the dynamic routing program is about to terminate.
Invoking the dynamic routing program on abend
If you have set DYROPTER to 'Y', and the routed transaction abends, the dynamic
routing program is invoked again to notify it of the abend. You could use this
invocation to initiate a user-defined program in response to the transaction abend.
If the routed transaction abends, the DFHAPRT program in the TOR:
1. Passes back a response to the CICS transaction manager indicating that a
transaction abend has occurred
2. If the dynamic routing program requested to be reinvoked at termination of the
transaction (by setting DYROPTER to 'Y' when invoked for routing), reinvokes
the dynamic routing program
3. Returns to CICS transaction manager.
594 Customization Guide