Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-6789

EJB3 load balancing doesn't keep client's node list up to date when @RemoteBinding(jndiBinding) is used

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • EAP_EWP 5.1.2 ER1
    • EAP_EWP 5.1.0
    • EJB
    • None
    • Hide

      Deploy a simple EJB with "@Stateless @Clustered @Remote(MyRemote.class) @RemoteBinding ( jndiBinding = "foo" )" to the cluster.
      Call the EJB with a client.
      Start another cluster member.
      Call the EJB again.
      Check the client's member list.

      Expected result: member list is updated to include new node
      Actual result: member list is not updated

      Member list pulled from the stub with:
      StatelessClusteredProxyInvocationHandler ih = (StatelessClusteredProxyInvocationHandler) Proxy.getInvocationHandler(stub);
      FamilyClusterInfo fci = ih.getFamilyWrapper().get();
      System.out.println ( fci.getTargets() );

      Show
      Deploy a simple EJB with "@Stateless @Clustered @Remote(MyRemote.class) @RemoteBinding ( jndiBinding = "foo" )" to the cluster. Call the EJB with a client. Start another cluster member. Call the EJB again. Check the client's member list. Expected result: member list is updated to include new node Actual result: member list is not updated Member list pulled from the stub with: StatelessClusteredProxyInvocationHandler ih = (StatelessClusteredProxyInvocationHandler) Proxy.getInvocationHandler(stub); FamilyClusterInfo fci = ih.getFamilyWrapper().get(); System.out.println ( fci.getTargets() );
    • Release Notes
    • Workaround Exists
    • Hide

      Don't use @RemoteBinding(jndiBinding=...)

      Show
      Don't use @RemoteBinding(jndiBinding=...)
    • Hide
      A clustered EJB using @RemoteBinding(jndiBinding=...) or <remote-binding> incorrectly created a proxy in JNDI, then replaced it with the correct proxy.
      When the cluster membership changed, the wrong proxy's cluster member list was updated, so the EJB clients were not informed about the new member.
      The extra proxy is no longer created and removed.
      The cluster member list now updates correctly, allowing EJB calls to load balance and failover to the new nodes.
      Show
      A clustered EJB using @RemoteBinding(jndiBinding=...) or <remote-binding> incorrectly created a proxy in JNDI, then replaced it with the correct proxy. When the cluster membership changed, the wrong proxy's cluster member list was updated, so the EJB clients were not informed about the new member. The extra proxy is no longer created and removed. The cluster member list now updates correctly, allowing EJB calls to load balance and failover to the new nodes.
    • Documented as Resolved Issue
    • NEW

    Description

      The node list in the client proxy for a clustered EJB3 bean is not kept up to date
      when the bean uses @RemoteBinding(jndiBinding=...) or <remote-binding>.

      Attachments

        Issue Links

          Activity

            People

              rhn-support-dereed Dennis Reed
              rhn-support-dereed Dennis Reed
              Jared Morgan Jared Morgan (Inactive)
              Votes:
              2 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: