Dealing with an abend on the target region

If a routed request fails on the target region, CICS® invokes the routing program for transaction abend, returning the abend code in field DYRABCDE of the communications area. Note that this invocation occurs on the target region, and then only if the routing program has specified, on a previous call on the routing region, that it should be reinvoked on the target region.

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.
  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:
    1. Removes the target region from its routing set.
    2. 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.

Related concepts
Differences between the distributed and dynamic routing interfaces
Related tasks
Routing BTS activities
Routing method requests for enterprise beans and CORBA stateless objects
Naming your distributed routing program
Rewriting user-replaceable programs
Assembling and link-editing user-replaceable programs
Related reference
Parameters passed to the distributed routing program
Distributed transaction routing sample programs
[[ Contents Previous Page | Next Page Index ]]