Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-1548

Incorrect EJB Optimization to Local Server when Remote Server is specified

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • None
    • JBossAS-4.0.1 Final
    • EJB2
    • None

      We have an application that performs a division of labor. We have the same EJB's bound and deployed on several different application servers under the same name. We have a requirement for an EJB on server A to call the same EJB on serverB. When the EJB on serverA attempts to call the EJB on serverB, it is incorrectly optimizing it to serverA.

      Here is the output from a client test I have written. I will attach the example in the next post:
      Calling serverOne at jnp://localhost:2000 directly
      Result is ServerOne (should be ServerOne)
      Calling serverTwo at jnp://localhost:2100 directly
      Result is ServerTwo (should be ServerTwo)
      Calling serverTwo through ServerOne
      Result is ServerOne (should be ServerTwo)

      I believe this is due to the following invoke method in the InvokerInterceptor class (line 93):
      /**

      • The invocation on the delegate, calls the right invoker.
      • Remote if we are remote, local if we are local.
        */
        public Object invoke(Invocation invocation)
        throws Exception { // optimize if calling another bean in same server VM if (isLocal(invocation)) return invokeLocal(invocation); else return invokeInvoker(invocation); }

      Randy Ott

            Unassigned Unassigned
            randyott_jira Randy Ott (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: