[jboss-jira] [JBoss JIRA] Commented: (JBAS-3798) EJB Interceptors Initialised Before Dependent Services Started

Luc Texier (JIRA) jira-events at lists.jboss.org
Tue Apr 3 10:50:14 EDT 2007


    [ http://jira.jboss.com/jira/browse/JBAS-3798?page=comments#action_12358223 ] 
            
Luc Texier commented on JBAS-3798:
----------------------------------

a simple workaround is to add a dependency on the CachedConnectionManager in the EJBDeployer service

/deploy/ejb-deployer.xml

  <!-- EJB deployer, remove to disable EJB behavior-->
  <mbean code="org.jboss.ejb.EJBDeployer" name="jboss.ejb:service=EJBDeployer" xmbean-dd="">

.......

    <!-- The EJBDeployer needs the JTA transaction manager service -->
    <depends optional-attribute-name="TransactionManagerServiceName">jboss:service=TransactionManager</depends>

    <!-- The EJBDeployer needs CCM -->
    <depends>jboss.jca:service=CachedConnectionManager</depends>
    
    <!-- The dynamic class loading simple web server -->
    <depends optional-attribute-name="WebServiceName">jboss:service=WebService</depends>

........




> EJB Interceptors Initialised Before Dependent Services Started
> --------------------------------------------------------------
>
>                 Key: JBAS-3798
>                 URL: http://jira.jboss.com/jira/browse/JBAS-3798
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: EJB2
>    Affects Versions: JBossAS-4.0.5.GA, JBossAS-4.0.4.GA
>            Reporter: Darran Lofthouse
>             Fix For: JBossAS-4.2.1.CR1
>
>         Attachments: jbossws-samples-jmstransport.sar
>
>
> The interceptors for an EJB are initialised in the create step of EJB deployment, this means that they can be initialised before the services the EJB depends on have been started.
> This can be reproduced by deploying a sar that contains a jar that contains a MDB and then starting JBoss, the CachedConnectionInterceptor is initialised before the CachedConnectionManager is available and the following warning is logged: -
> 12:27:54,179 WARN  [EjbModule] Could not load the org.jboss.resource.connectionmanager.CachedConnectionInterceptor interceptor for this container
> javax.management.InstanceNotFoundException: jboss.jca:service=CachedConnectionManager is not registered.
>         at org.jboss.mx.server.registry.BasicMBeanRegistry.get(BasicMBeanRegistry.java:523)
>         at org.jboss.mx.server.MBeanServerImpl.getAttribute(MBeanServerImpl.java:550)
>         at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.<init>(CachedConnectionInterceptor.java:78)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>         at java.lang.Class.newInstance0(Class.java:350)
>         at java.lang.Class.newInstance(Class.java:303)
>         at org.jboss.ejb.EjbModule.addInterceptors(EjbModule.java:930)
>         at org.jboss.ejb.EjbModule.initializeContainer(EjbModule.java:816)
>         at org.jboss.ejb.EjbModule.createMessageDrivenContainer(EjbModule.java:602)
>         at org.jboss.ejb.EjbModule.createContainer(EjbModule.java:569)
>         at org.jboss.ejb.EjbModule.createService(EjbModule.java:342)
>         at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:260)
>         at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:243)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list