Uploaded image for project: 'EJB 3.0'
  1. EJB 3.0
  2. EJBTHREE-1842

ClusteredIsLocalInterceptor finds unstarted beans

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • AS 4.2.2.GA
    • interceptors
    • None
    • Hide

      If this problem occurs when using a HA-Singleton SLSB with a @Clustered annotation a workaround is to remove the @Clustered annotation. Because the @Clustered annotation isn't doing anything useful as the EJB resides only on one node.

      Show
      If this problem occurs when using a HA-Singleton SLSB with a @Clustered annotation a workaround is to remove the @Clustered annotation. Because the @Clustered annotation isn't doing anything useful as the EJB resides only on one node.

      ClusteredIsLocalInterceptor determines whether a bean is available locally by checking the Ejb3Registry. Problem is beans are registered early in the deployment process, before they are started.

      In the related forum thread pawel.wyrwinski reports how this particularly causes problems when an @Depends("jboss.ha:service=HASingletonDeployer,type=Barrier") annotation is used to make a bean act as an HASingleton. The bean is included in the Ejb3Registry on all nodes but is only started on one.

      A logically obvious solution would be to check whether the target container is started before invoking locally. Unfortunately, AFAICT Container and its subclasses do not expose any method to support such a check.

      Pawel reported this against 4.2.2 so that the "Affects Version" I used, but a quick code check leads me to believe it still exists.

              pferraro@redhat.com Paul Ferraro
              bstansbe@redhat.com Brian Stansberry
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: