CORBA exceptions

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:
  1. At the WebSphere Administration Console, select the JVM settings tab.
  2. 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.
  3. 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 codes
Code 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.