These exceptions can sometimes provide useful information. The
completion status can have one of three values:
- No means that the server definitely did not complete
running the invoked method successfully.
- Yes means that the invoked operation on the server
did complete.
- Maybe means that the client cannot determine whether
or not the operation completed on the server.
If the completion status is
Yes, you can be sure
that the client found something to run on a server (however if your JNDI/IOR
is incorrect, it may not have been the correct enterprise bean or on the expected
CICS region). You will usually find some more useful information in the CICS
output about why the method call failed.
Some of the more common CORBA exceptions received by the client are:
- org.omg.CORBA.COMM_FAILURE
- This can occur in one of the following situations:
- The JNDI nameserver is not running (if it is on a JNDI lookup)
- The enterprise bean has not been published to the JNDI nameserver.
- The CICS region is down
- TCPIPSERVICE is not installed or is open (for method invocations on CICS)
if either the JNDI server is not running (if it is on a JNDI lookup),
if the CICS region is down, or if your TCPIPSERVICE is not installed or open
(for method invocations on CICS). It can also occur
- org.omg.CORBA.INTERNAL
- This is usually caused by an abend or failure of the server-side application.
Look in the CICS console for more information.
- org.omg.CORBA.INVALID_TRANSACTION
- This can occur because of transaction interoperability problems between
a web application server and CICS.
A number of protocols exist to support
distributed transactions. The CICS enterprise Java™ environment supports only the standard
CORBA Object Transaction Service (OTS) protocol. However, some J2EE-compliant
web application servers (such as WebSphere® Version 4) either do not use this
protocol, or do not use this protocol by default. (Versions of
WebSphere Application Server from Version 5 onwards are not affected by this
problem.)
If objects on your web application
server call CICS enterprise beans within the scope of existing transaction
contexts, you must set up your web application server to use the CORBA OTS. If this is not possible, your web application server is not fully compatible
with CICS enterprise Java support. (For a way of using the EJB Bank Account
sample application to test whether your web application server is fully compatible
with CICS enterprise Java support, see A note about distributed transactions.)
To force WebSphere Application Server to use the CORBA OTS:
- At the WebSphere Administration Console, select the JVM settings tab.
- Enter the following in the System Properties section:
com.ibm.ejs.jts.ControlSet.interoperabilityOnly=true
com.ibm.ejs.jts.ControlSet.nativeOnly=false
Save your changes.
- Restart the application server.
- org.omg.CORBA.OBJECT_NOT_EXIST
- This can occur when a client finds a reference to a bean on the JNDI
nameserver but the bean is no longer installed in CICS.
- org.omg.CORBA.UNKNOWN
- There are many reasons for this exception including errors in your code,
and errors in CICS. See the CICS output for more clues about the cause of
the problem
In many instances, the CORBA exception
includes a CICS specific minor code to aid in problem determination. CICS
currently uses the following minor codes:
Table 1. CICS specific CORBA minor
codesCode |
CICS component detecting problem |
1229111296 |
CICS IIOP request receiver |
1229111297 |
Elsewhere in CICS II domain |
1229111298 |
ORB component of CICS OT domain |
1229111299 |
JTS component of CICS OT domain |
1229111300 |
CSI component of CICS OT domain |
1229111301 |
CSI component of CICS EJ domain |
If the client receives a CORBA exception containing any of the CICS minor
codes, you should examine the CICS message logs for further information about
the error.