For non-terminal-related START requests that are eligible
for enhanced routing, CICS® invokes the distributed routing
program at the following points:
On the routing region:
Either of the following:
For routing the request.
For notification of a statically-routed request. This occurs when
a transaction defined as ROUTABLE(YES) is eligible for enhanced routing
but not for dynamic routing because one or both of the following
applies:
The transaction definition specifies DYNAMIC(NO).
The SYSID option of the START command names a remote region explicitly.
The routing program is not able to route the request. It
could, however, do other things.
If an error occurs in route selection—for example, if the target
region returned by the routing program on the route selection call
is unavailable. This gives the routing program the opportunity to
specify an alternate target. This process iterates until the routing
program selects a target that is available or sets a non-zero return
code.
After CICS has tried (successfully or unsuccessfully)
to route the request to the target region.
This invocation signals
that (unless the routing region and the target region are one and
the same) the routing region's responsibility for this transaction
has been discharged. The routing program might, for example, use this
invocation to release any resources that it has acquired on behalf
of the transaction.
On the target region:
These invocations occur only if the routing program on the routing region has specified that
it should be re-invoked on the target region:
When the transaction associated with the request starts on the target region.
If the transaction ends successfully.
If the transaction abends.
Figure 1 shows the
points at which the distributed routing program is invoked, and the
region on which each invocation occurs. Note that the “target region”
is not necessarily remote—it could be the local (routing) region,
if the routing program chooses to execute the START request locally.
Figure 1. When and where the distributed routing program
is invoked