may also need to change the input communications area passed to the routed
application. Field DYRACMAA of the routing program’s communications area
enables you to do this; it is a pointer to the application’s communications area.
Receiving information from a routed transaction
If your dynamic routing program chooses to be reinvoked at the end of a routed
transaction, it can obtain information about the transaction by monitoring its output
communications area and output TIOA.
Monitoring the output communications area
A routed transaction can pass information back to the dynamic transaction routing
program in its output communications area. When invoked at transaction
termination, your routing program can examine the output communications area
(pointed to by DYRACMAA). The following is an example of how this facility could
be used:
You have a CICSplex consisting of sets of functionally-equivalent TORs and
AORs, and need to identify any intertransaction affinities that may affect
transaction routing. You could use the Transaction Affinities Utility
7
to do this,
but there are some affinities that the utility cannot detect (for example, those
created by non-CICS functions). Also, some transactions may sometimes create
affinities, and sometimes not.
However, the routed transactions themselves “know” when an affinity is created,
and can communicate this to the dynamic transaction routing program. The
routing program is then able to route such transactions accordingly.
Monitoring the output TIOA
When invoked at transaction termination, your routing program can examine the
copy of the routed transaction’s output TIOA pointed to by DYRBPNTR. This can be
useful, for example, to guard against the situation where one AOR in a CICSplex
develops software problems. These may be reported by means of a message to the
end user, rather than by a transaction abend. If this happens, the routing program is
unaware of the failure and cannot bypass the AOR that has the problem. By
reading the output TIOA, your routing program can check for messages indicating
specific kinds of failure, and bypass any AOR that is affected.
Some processing considerations
v Any of the EXEC CICS commands (except EXEC CICS RECEIVE—see
“Modifying the initial terminal data” on page 555) can be issued from the routing
program. You are likely to find the EXEC CICS INQUIRE CONNECTION and
INQUIRE IRC commands particularly useful if you want to confirm that a link is
available before routing a transaction. The EXEC CICS INQUIRE and SET
commands are described in the
CICS System Programming Reference
manual.
v Although the routing program can issue any EXEC CICS command, you should
consider carefully the effect of commands that alter protected resources, because
changes to those resources may be committed or backed out inadvertently as a
result of logic in the routed transaction. You should also consider carefully the
effect of EXEC CICS SYNCPOINT and ABEND commands on APPC transaction
routing.
7. For information about the Transaction Affinities Utility, see the
CICS Transaction Affinities Utility Guide
.
dynamic transaction routing
556
CICS TS for OS/390: CICS Customization Guide