2. You can tell CICS to treat the request as “unserviceable”, by issuing a non-zero
return code in DYRRETC.
Sometimes, perhaps because of a transaction affinity, it is essential that an
activity should execute on a particular target region, and on no other. If this is
the case, and the target region is unavailable, classify the request as
unserviceable. Instead of reinvoking the routing program for a route selection
error, CICS:
a. Tries repeatedly to route the request to the specified target region, at
1-minute intervals.
If one of these attempts is successful, CICS issues message DFHSH0108.
The routing program is invoked on the requesting region for “routing attempt
complete”, and, if specified, on the target region for “transaction initiation”.
b. Every hour, if the target region is still unavailable, issues message
DFHSH0106.
c. If the target region is still unavailable 24 hours after the request was issued,
issues message DFHSH0107, and stops trying to route the request, which is
discarded. The routing program is invoked on the requesting region for
“routing attempt complete”.
Invoking the distributed routing program on the target region
The route selection, notification, route selection error, and routing complete
invocations of the distributed routing program all occur on the requesting region. If
the routing program wants to be re-invoked
on the target region
, it must set the
DYROPTER field in the communications area to 'Y'. It must do this on its initial
(route selection or notification) invocation—and again, if it is reinvoked for a route
selection error.
If the routing program sets DYROPTER to 'Y', it is re-invoked on the target region:
v When the activation is about to be initiated on the target region
v If the routed activation (transaction) terminates successfully
v If the routed activation (transaction) abends.
Each time it is invoked on the target region, the routing program could update a
count of BTS activities that are currently running on that region. When it is invoked
for routing, the routing program could use the counts maintained by all the regions
in the routing set (including itself) as input to its routing decision. This requires that
each region in the routing set has access to a common data set on which the
counts are recorded.
Some processing considerations
v When writing your 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 an activity. The EXEC CICS
INQUIRE and SET commands are described in the
CICS System Programming
Reference
manual.
v Because the distributed routing program executes outside a unit of work
environment, your program must not:
– Alter any recoverable resources
– Issue file control or temporary storage requests.
v If you want to keep information about how activities are routed, it must be done
in the user routing program, perhaps by writing the information to a data set.
routing BTS activities
580
CICS TS for OS/390: CICS Customization Guide
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|