EJB Spec 2.0 on java.rmi.NoSuchObjectException
 Technote (troubleshooting)
 
Problem(Abstract)
When invoking a business method on a stateless session EJB™ remote interface to an EJB in a server that has been shutdown I expect to receive a java.rmi.NoSuchObjectException (see section 6.7.1 of EJB 2.0 specification) but I'm receiving the following:

java.rim.RemoteException:
java.rmi.RemoteException: CORBA TRANSIENT 0x4942f301 No; nested exception is:
org.omg.CORBA.TRANSIENT: Connection refused:
connect:host=interoplabs1.mlab.jdedwards.com,port=4432 minor code:
4942F301 completed: No
org.omg.CORBA.TRANSIENT: Connection refused:
connect:host=interoplabs1.mlab.jdedwards.com,port=4432 minor code:
4942F301 completed: No
at java.lang.Throwable.<init>(Throwable.java)
at java.lang.Throwable.<init>(Throwable.java)
at org.omg.CORBA.SystemException.<init>(SystemException.java:59)
com.ibm.CORBA.transport.TransportConnectionBase.connect(TransportConnect
ionBase.java:450)
at com.ibm.ws.orbimpl.transport.WSTransport.getConnection(Unknown
 
Cause
Ejb spec 2.0 states:

a. It is invalid to reference a session object that does not exist. Attempted remote invocations on a session object that does not exist result in java.rmi.NoSuchObjectException.

b. The state diagram states that in event of a container crash/bean timeout the client should be getting the NoSuchObjectException.

 
Resolving the problem
1. We would definitely need to differentiate between the container crash, and server crash. As server crash does not have the ORB, where as container crash does have orb working.
2. Server crash, which would involve the ORB subsystem going down, constituting the java.rmi.RemoteException: CORBA TRANSIENT.

3. Container crash, which can be simulated by turning off the bean or the application alone, should probably give the NoSuchObjectException error.

4. we are debating between the container crash and server crash - as they are clearly different things.

5. Expect the NoSuchObjectException to be thrown in either case.

6. Basically the transition diagram on page 63 of the ejb 2.0 spec, discusses the state of the bean, in even of a container crash, implying that the ORB is in place, so if the container/app goes down and comes back up again, ( or even if the container stays down) the orb will facilitate the communication, and eventually map the orb exception to the java.rmi.NoSuchObjectException error.
 
Related information
EJB spec 2.0
 
 
Cross Reference information
Segment Product Component Platform Version Edition
Application Servers Runtimes for Java Technology Java SDK
 
 


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server > EJB Container
Operating system(s): Windows
Software version: 5.1
Software edition:
Reference #: 1177011
IBM Group: Software Group
Modified date: Jun 30, 2005