|
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. |
|
|
|