IBM SC34-6814-04 Server User Manual


 
In general, you should follow the guidelines in Updating enterprise beans
in a production region, in the Java Applications in CICS manual about how
to organize beans, CorbaServers, and transaction IDs to facilitate
maintenance.
One way of dealing with a disabled CorbaServer is as follows:
1. If your AORs contain multiple CorbaServers, ensure that you assign different
sets of transaction IDs to the objects supported by each CorbaServer.
2. Code your routing program to handle abends on the target region—see “Dealing
with an abend on the target region” on page 644. That is:
a. On each route selection (and route selection error) call, the routing program
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.
b. 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.
c. The routing program on the routing region checks the shared resource at
predetermined intervals.
d. 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. An abend code of 'AIID' indicates that the
request failed because the target CorbaServer on the target region is
disabled.
3. When the routing program on the routing region discovers that a routed request
has failed due to a disabled CorbaServer:
v If the target region contains only the single (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, an error response is returned to the client. However,
it’s unlikely that you will have disabled the equivalent CorbaServer in all
the AORs simultaneously; so one of these retried requests is likely to
succeed.)
v If the target region contains multiple CorbaServers, the routing program:
a. Tries to route the request to a different AOR in the routing set. It tries
repeatedly until either the request is successful or all possible AORs have
been tried unsuccessfully.
b. Retrieves the transaction name under which the method request runs
from field DYRTRAN of the saved communications area. Marks this
transaction as unavailable in this AOR (and in any other AORs that have
been tried unsuccessfully). The routing program will route any new
requests for objects that run under this same transaction to AORs in
which the transaction is not marked as unavailable.
Thus, the AOR containing the disabled CorbaServer remains part of the
routing set. Requests for objects in enabled CorbaServers in the region,
that run under transaction IDs not marked as unavailable, will succeed.
Requests for objects in the disabled CorbaServer will be re-routed, or fail.
636 Customization Guide