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.
v If you want to keep information about how transactions are routed, it must be
done in the user routing program, perhaps by writing the information to a
temporary storage queue associated with this terminal.
v Several transactions can form a single conversation with the end user. At the
start of the conversation, resources are allocated to record the state of the
conversation. Because these resources are local to the system to which the first
transaction in the conversation was routed, the routing program must be able to
continue to route to this system until the end of the conversation.
v It is important to avoid creating “tangled daisychains”: for any transaction that is
being dynamically routed, you must avoid routing back to a node that has
previously been routed from.
v The dynamic routing program can be RMODE ANY but must be AMODE 31.
Unit of work considerations
Depending on the terminal type, the CICS relay program, the dynamic routing
program, and the routed transaction may constitute a single unit of work. Any
protected resources owned by the dynamic routing program could therefore be
affected by the syncpoint activity of the routed transaction. This means that these
resources may be committed or backed out inadvertently by the routed transaction.
If you want to avoid this, you have to define the routing program’s resources as
unprotected rather than protected.
Routing DPL requests dynamically
For a program-link request to be eligible for dynamic routing, the remote program
must either:
v Be defined to the local system as DYNAMIC(YES) or
v Not be defined to the local system.
Note: If the program specified on an EXEC CICS LINK command without a
SYSID is not currently defined, what happens next depends on whether
program autoinstall is active:
– If program autoinstall is inactive, the dynamic routing program is
invoked.
– If program autoinstall is active, the autoinstall user program is invoked.
The dynamic routing program is then invoked only if the autoinstall
user program:
- Installs a program definition that specifies DYNAMIC(YES), or
- Does not install a program definition.
See “Autoinstalling programs invoked by EXEC CICS LINK commands”
on page 580.
As well as “traditional” CICS-to-CICS DPL calls instigated by EXEC CICS LINK
PROGRAM commands, program-link requests received from outside CICS can also
be dynamically routed. For example, all the following types of program-link request
can be dynamically routed:
v Calls from external CICS interface (EXCI) client programs
v External Call Interface (ECI) calls from any of the CICS Client workstation
products
Chapter 17. Writing a dynamic routing program 597
|
|