users@glassfish.java.net

EJB timeout resulting from ORB 30 minute timeout

From: <glassfish_at_javadesktop.org>
Date: Wed, 12 Aug 2009 12:47:44 PDT

I've got a ACC application (Java Web start) that calls an EJB procedure with a particularly long process time. What I'm doing is sending an SQL from the application to the EJB to execute it on my postgres database. This particular query runs a very long time, and as a result I get the following exception on the client side only (no server side logs indicating a problem, postgres SQL query continues running after client side exception).....

Aug 12, 2009 2:01:38 PM com.sun.corba.ee.impl.transport.CorbaResponseWaitingRoomImpl waitForResponse
WARNING: "IOP00410219: (COMM_FAILURE) Communications timeout waiting for response. Exceeded 1,800,000 milliseconds"
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 219 completed: Maybe
        at com.sun.corba.ee.impl.logging.ORBUtilSystemException.communicationsTimeoutWaitingForResponse(ORBUtilSystemException.java:3180)
        at com.sun.corba.ee.impl.logging.ORBUtilSystemException.communicationsTimeoutWaitingForResponse(ORBUtilSystemException.java:3195)
        at com.sun.corba.ee.impl.transport.CorbaResponseWaitingRoomImpl.waitForResponse(CorbaResponseWaitingRoomImpl.java:198)
        at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.waitForResponse(SocketOrChannelConnectionImpl.java:1196)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.waitForResponse(CorbaMessageMediatorImpl.java:291)
        at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete1(CorbaClientRequestDispatcherImpl.java:389)
        at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:357)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        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)


Looking in the forums, we get the following that describes similar problems:
http://forums.java.net/jive/thread.jspa?messageID=352400&#352400

Post at the end of thread:
ewernli -----------------------------------------
We had this problem for some time using GF v2ur2. We improved the overal stability with the following actions.
1) apply latest patch of OS
2) use -server mode for the JVM
3) check "Allow non component caller" in the datasource
4) tune the ORB. We are now using -Dcom.sun.corba.ee.transport.ORBTCPTimeouts=500:30000:30:999999

Also, we sometimes injected EJBs using @Resource. It works but I suspect some issue with it. Make sure you use @EJB to inject beans.

Hope it helps...
-----------------------------------

Having followed these instructions has not yielded a different result, so I was wondering if anyone has had similar experiences with ORB TCP timeouts, and how they were able to change the default 30 minute timeout, or if this is even configurable perhaps in the Admin console? Thanks in advance.

Currently using
Ubuntu Server 8.04,
Sun GlassFish Enterprise Server v2.1 (9.1.1) (build b60f-fcs),
Postgres 8.3
on a Dell 8 core/24GB machine
[Message sent by forum member 'enderfake' (enderfake)]

http://forums.java.net/jive/thread.jspa?messageID=360165