I have a java daemon process on a server that makes calls to session beans hosted by a Sun App Server EJB container which resides on the same server. Note that the daemon process is running outside of the EJB application container. I get handles to the session beans using InitialContext: ic.lookup(BEAN NAME). Pretty straightforward stuff.
The daemon runs fine for hours (sometimes one or two days), but then I get a java.rmi.MarshalException CORBA COMM FAILURE when trying to lookup the service. I have googled this exception and have seen others with this issue. It appears that it was a bug but was supposedly fixed in Glassfish b49.
Here is the complete stack trace:
Aug 6, 2008 8:25:44 AM com.sun.enterprise.naming.SerialContext lookup
SEVERE: NAM0004: Exception during name lookup : {0}
java.rmi.MarshalException: CORBA COMM_FAILURE 1398079707 Maybe; nested exception is:
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 219 completed: Maybe
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:271)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
at com.sun.enterprise.naming._SerialContextProvider_DynamicStub.lookup(com/sun/enterprise/naming/_SerialContextProvider_DynamicStub.java)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:398)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:425)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at edu.unl.bsm.common.session.ServiceLocator.locateService(ServiceLocator.java:90)
at edu.unl.bsm.jfcmanager.JFCManagerPacketHandler.handleUnresolvedPackets(JFCManagerPacketHandler.java:196)
at edu.unl.bsm.jfcmanager.JFCManagerPacketHandler.access$000(JFCManagerPacketHandler.java:37)
at edu.unl.bsm.jfcmanager.JFCManagerPacketHandler$1.run(JFCManagerPacketHandler.java:54)
Note that the ServiceLocator class is just a simple wrapper I've placed around the InitialContext class.
Any thoughts?
[Message sent by forum member 'snewbold' (snewbold)]
http://forums.java.net/jive/thread.jspa?messageID=291976