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

ClusteredIsLocalInterceptor finds unstarted beans

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • 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.

    Description

      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.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated: