v Distributed Computing Environment (DCE) remote procedure calls (RPCs)
v ONC/RPC calls.
A program-link request received from outside CICS can be dynamically routed by:
v Defining the program to CICS Transaction Server for z/OS as DYNAMIC(YES)
v Coding your dynamic routing program to route the request.
When the dynamic routing program is invoked
For eligible program-link requests, CICS invokes the dynamic routing program as
follows:
v Before the linked-to program is executed, to either:
– Obtain the SYSID of the region to which the link should be routed.
Note: The address of the caller’s communications area (COMMAREA) is
passed to the routing program, which can therefore route requests by
COMMAREA contents if this is appropriate.
– Notify the routing program of a statically-routed request. This occurs if the
program is defined as DYNAMIC(YES)—or is not defined—but the caller
specifies the name of a remote region on the SYSID option of the LINK
command.
In this case, specifying the target region explicitly takes precedence over any
SYSID returned by the dynamic routing program.
v If an error occurs in route selection—for example, if the SYSID returned by the
dynamic routing program is unavailable or unknown, or the link fails on the
specified target region—to provide an alternate SYSID. This process iterates until
either the program-link is successful or the return code from the dynamic routing
program is not equal to zero.
Special case: care!
If all the following are true, the route selection call fails but the routing
program is not reinvoked for a route selection error:
1. The program is not defined on the local region.
2. Program autoinstall is not active on the local region.
3. On the route selection call, the routing program routes the link request to
the local region.
Therefore, to dynamically route a program-link request that the routing
program may route locally, you should do either of the following:
1. Install a program definition on the local region, specifying
DYNAMIC(YES).
2. Set program autoinstall active, using it to install a definition that specifies
DYNAMIC(YES).
v After the link request has completed, if reinvocation was requested by the routing
program.
v If an abend is detected after the link request has been shipped to the specified
remote system, if reinvocation was requested by the routing program.
Figure 57 on page 591 shows the points at which the dynamic routing program is
invoked.
598 Customization Guide