IBM SC34-6814-04 Server User Manual


 
The recommended way of dealing with an abend on the target region is as follows:
1. Code your routing program so that, on each route selection (and route selection
error) call, it specifies that it is to be reinvoked (for transaction initiation,
termination, and abend) on the target region—see “Invoking the distributed
routing program on the target region” on page 634.
2. If the routing program is invoked, on the target region, for transaction abend, it
conveys full details of the failed request to the routing region. It could, for
example, write the communications area to a shared resource, such as an RLS
file or a shared data table.
3. The routing program on the routing region checks the shared resource at
predetermined intervals.
4. When the routing program on the routing region discovers that a routed request
has failed, it checks the abend code in field DYRABCDE of the saved
communications area. If the abend code indicates that the failure was due to
anything other than a disabled CorbaServer, the routing program:
a. Removes the target region from its routing set.
b. Retries the request on another region. It tries repeatedly until either the
request is successful or all possible AORs have been tried unsuccessfully. In
the latter case, it returns an error response to the client.
If the abend code indicates that the failure was due to a disabled CorbaServer,
special considerations apply. See “Dealing with a disabled CorbaServer” on
page 635.
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 a request. The EXEC CICS
INQUIRE and SET commands are described in System commands, in the CICS
System Programming Reference manual.
v Because the distributed routing program executes outside a unit of work
environment, your program should not:
Alter any recoverable resources
Issue file control or temporary storage requests.
v If you want to keep information about how requests are routed, it must be done
in the user routing program, perhaps by writing the information to a data set.
Note that, because the routing program is distributed, all the CICS regions in the
transaction routing set must have access to the data set.
v The distributed routing program can be RMODE ANY but must be AMODE 31.
Parameters passed to the distributed routing program
Figure 65 on page 646 shows the communications area passed to the distributed
routing program. The communications area is mapped by the copy book
DFHDYPDS, which is in the appropriate CICS library for all the supported
programming languages.
Chapter 18. Writing a distributed routing program 645