CORBA Interoperability failure using WSAE3.5 and OrbixWeb 3.2

Technote (FAQ)
Problem
A problem arose when a customer chose the ORB class to be com.ibm.CORBA.iiop.ORB.
There are specific differences between the various ORB's classes in the JDK.
Solution
Migrating from WSAE3.02 to 3.5.2 on Windows NT 4.0 revealed an interoperability problem with OrbixWeb 3.2 and CosNaming.
Here is the relevant code from the CORBA framework in a simple Java test app.

When migrating the code to Java2 and WSAE 3.5.2, the following exception is thrown when attempting to list the root context:
...
>> Attempting to list the root context...
Caught exception: org.omg.CORBA.COMM_FAILURE ()
org.omg.CORBA.COMM_FAILURE: minor code: 1 completed: Maybe
java.lang.Throwable(java.lang.String)
java.lang.Exception(java.lang.String)
java.lang.RuntimeException(java.lang.String)
org.omg.CORBA.SystemException(java.lang.String, int, org.omg.CORBA.CompletionStatus)
org.omg.CORBA.COMM_FAILURE(java.lang.String, int, org.omg.CORBA.CompletionStatus)
org.omg.CORBA.COMM_FAILURE(int, org.omg.CORBA.CompletionStatus)
void com.ibm.CORBA.iiop.IIOPConnection.purge_calls(int, boolean, boolean)
void com.ibm.CORBA.iiop.IIOPConnection.processInput(com.ibm.rmi.iiop.IIOPInputStream)
void com.ibm.CORBA.iiop.StandardReaderThread.run()


When testing with the ORB provided in the Sun 1.2.2 SE SDK the following exception is thrown when attempting to call the create() method on the ALGSessionServiceFactory:
...
>> Attempting to create a ALGSessionService instance using the ALGSessionServiceFactory...
Caught exception: org.omg.CORBA.NO_IMPLEMENT ()
org.omg.CORBA.NO_IMPLEMENT: minor code: 0 completed: No
at org.omg.CORBA.portable.Delegate.releaseReply(Delegate.java:328)
at org.omg.CORBA.portable.ObjectImpl._releaseReply(ObjectImpl.java:260)
at com.swissre.alg._ALGSessionServiceFactoryStub.create
(_ALGSessionServiceFactoryStub.java:49)
at com.swissre.test.ibmorb.NSResolveTest.main(NSResolveTest.java:114)

Solution:
Try this using com.ibm.rmi.iiop.ORB as the name of the ORB class.
This is the IBM base ORB that is part of JDK 1.2.2.

The Sun JDK 1.2.2 ORB gets further before it fails because it's failing on releaseReply() which is not implemented in the Sun JDK 1.2.2 ORB. This method is implemented in the Sun JDK 1.3.0 ORB and the IBM JDK 1.2.2 ORB.











    Document Information

    Product categories: Software, Application Servers, Distributed Application & Web Servers, WebSphere Application Server, Administrative Console (all non-scripting)
    Operating system(s): Windows NT
    Software version: 3.5.2
    Software edition: Standard, Advanced
    Reference #: 1008350
    IBM Group: Software Group
    Modified date: 2002-11-26