Announcement Announcement Module
Collapse
No announcement yet.
Remote EJB call hangs after making successful call to a second EJB Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Remote EJB call hangs after making successful call to a second EJB

    I have two EJB 3.0s; EJB 1 is deployed on server A and EJB 2 is deployed on server B. I can successful call any method on either EJB.

    Our business requires that a method on EJB 1 calls a method on EJB 2. When I make the call, the method (EJB 2) gets executed completely (as per logs) but the results never make it back to the client. The client hangs.

    I can see the constructor and desired method being called, on EJB 2.

    The context.xml file for EJB 1 has the following bean for EJB 2 (demsManagerLdap):

    <bean id="demsManagerLdap" class="org.springframework.ejb.access.SimpleRemote StatelessSessionProxyFactoryBean">
    <property name="jndiTemplate"><ref bean="jndiTemplateEjb"/></property>
    <property name="jndiName"><value>DemsManagerLdap#com.bmw.dem s.domain.ldap.DemsManagerLdap</value></property>
    <property name="businessInterface"><value>com.bmw.dems.domai n.ldap.DemsManagerLdap</value></property>
    </bean>

    The method I'm debugging receives two strings and returns a boolean.

    Its like the remote EJB 2 is not being release and therefore causing the hold.

    Ideas?

  • #2
    Further note; after stepping deeper into the weblogic generated ejb 3.0 source file I found the line that it seems to hang on;

    try {
    // Here is where we try to commit if it's our TX
    doTxRetry = super.postInvokeTxRetry(__wrap, __ee);
    } catch (java.lang.Throwable t) {
    __ee = t;
    doTxRetry = false;
    // do not attempt any Tx Retry if we encountered
    // an exception while attempting postInvokeTxRetry
    // instead go directly to postInvokeCleanup
    }

    Comment

    Working...
    X