11 Replies Latest reply on Sep 17, 2004 1:22 PM by skidvd

    Beginner question: deployment order problem

    skidvd

      Hello:

      I have a beginner question related to a deployment order problem. I have a jar file containing several EJBs (a session bean and an MDB). This jar deploys and works flawlessly IF it is deployed AFTER the container has completely initialized following startup. If, however, I attempt to start up the container with the jar file already deployed, the container startup will hang (and apparently never return) during the deployment of the contained MDB EJBModule. Obviously, I am missing some deployment order dependency somewhere - the difficulty that I am having is determining what they are. Also, please note that ths MDB is configured to be invoked via the HTTPIL service in case this has anything to do with this.

      I have attempted to add

      <depends>
      tags for anything that I felt might be remotely related - however this has had no apparent effect - so I assume that I am not doing this correctly in some way or missing the correct ones. I have also attempted to use the jmx-console ServiceController MBean listIncompletelyDeployed operation. However, this was unsuccessful as the container has not yet initialized and I presume that the jmx-console is not yet available (no other operations in the console seem to respond at this point either - but do work after startup without this jar in place).

      I am using JBoss 3.2.5 with embedded Tomcat 5. Here is my jboss.xml deployment descriptor for your reference. I would greatly appreciate any and all suggestions and insights into this problem.

      <!DOCTYPE jboss PUBLIC
       "-//JBoss//DTD JBOSS 3.2//EN"
       "http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd">
      <jboss>
       <enterprise-beans>
       <session>
       <ejb-name>Registration</ejb-name>
       <jndi-name>apps/Ensuren/Registration</jndi-name>
       <local-jndi-name>apps/Ensuren/RegistrationLocal</local-jndi-name>
       <!--
       Use the following to tunnel over HTTPS
       -->
       <invoker-bindings>
       <invoker>
       <invoker-proxy-binding-name>
       stateless-https-invoker</invoker-proxy-binding-name>
       </invoker>
       </invoker-bindings>
       </session>
      
       <message-driven>
       <ejb-name>ResultsBean</ejb-name>
       <destination-jndi-name>topic/discoveryResults</destination-jndi-name>
       <!--
       Use the following to tunnel over HTTPS
       -->
       <configuration-name>HTTPS Message Driven Bean</configuration-name>
       <invoker-bindings>
       <invoker>
       <invoker-proxy-binding-name>
       message-driven-bean-https</invoker-proxy-binding-name>
       </invoker>
       </invoker-bindings>
       <depends>jboss.mq:service=DestinationManager</depends>
       <depends>jboss.mq:service=SecurityManager</depends>
       <depends>jboss.mq:service=Invoker</depends>
       <depends>jboss.mq:service=InvocationLayer,type=HTTPSUIL2</depends>
       <depends>jboss.mq.destination:service=Topic,name=discoveryResults</depends>
       <depends>jboss.web:service=WebServer</depends>
       <depends>jboss:service=TransactionManager</depends>
       <depends>jboss.security:service=JaasSecurityDomain,domain=RMI+SSL</depends>
       <depends>jboss.mq:service=HTTPInvocationLayer,type=HTTPS</depends>
       <depends>jboss:service=invoker,type=https</depends>
       <depends>jboss:service=invoker,type=https,target=Naming</depends>
       <depends>jboss.mq:service=JMSProviderLoader,name=JMSProvider</depends>
       <depends>jboss.mq:service=JMSProviderLoader,type=https,name=HTTPSJMSProvider,socketType=SSL</depends>
       </message-driven>
      
       </enterprise-beans>
      
       <invoker-proxy-bindings>
       <!-- A custom invoker for RMI/SSL -->
       <invoker-proxy-binding>
       <name>stateless-ssl-invoker</name>
       <invoker-mbean>
       jboss:service=invoker,type=jrmp,socketType=SSL
       </invoker-mbean>
       <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
       <proxy-factory-config>
       <client-interceptors>
       <home>
       <interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
       <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
       <interceptor>org.jboss.proxy.TransactionInterceptor</intercep>
       <interceptor>org.jboss.invocation.InvokerInterceptor</interce>
       </home>
       <bean>
       <interceptor>org.jboss.proxy.ejb.StatelessSessionInterceptor<
      /interceptor>
       <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
       <interceptor>org.jboss.proxy.TransactionInterceptor</intercep>
       <interceptor>org.jboss.invocation.InvokerInterceptor</interce>
       </bean>
       </client-interceptors>
       </proxy-factory-config>
       </invoker-proxy-binding>
      
       <!-- A custom invoker for RMI/HTTPs -->
       <invoker-proxy-binding>
       <name>stateless-https-invoker</name>
       <invoker-mbean>
       jboss:service=invoker,type=https
       </invoker-mbean>
       <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
       <proxy-factory-config>
       <client-interceptors>
       <home>
       <interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
       <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
       <interceptor>org.jboss.proxy.TransactionInterceptor</intercep>
       <interceptor>org.jboss.invocation.InvokerInterceptor</interce>
       </home>
       <bean>
       <interceptor>org.jboss.proxy.ejb.StatelessSessionInterceptor<
      /interceptor>
       <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
       <interceptor>org.jboss.proxy.TransactionInterceptor</intercep>
       <interceptor>org.jboss.invocation.InvokerInterceptor</interce>
       </bean>
       </client-interceptors>
       </proxy-factory-config>
       </invoker-proxy-binding>
      
       <!-- A custom invoker for JMS/HTTPs -->
       <invoker-proxy-binding>
       <name>message-driven-bean-https</name>
       <invoker-mbean>
       jboss.mq:service=HTTPInvocationLayer,type=HTTPS
       </invoker-mbean>
       <proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-fac>
       <proxy-factory-config> <JMSProviderAdapterJNDI>HTTPSJMSProvider</JMSProviderAdapterJNDI>
       <ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJN>
       <!-- WARN: Don't set this to zero until a bug in the pooled executor
       is fixed -->
       <MinimumSize>1</MinimumSize>
       <MaximumSize>15</MaximumSize>
       <KeepAliveMillis>30000</KeepAliveMillis>
       <MaxMessages>1</MaxMessages>
       <MDBConfig>
       <ReconnectIntervalSec>10</ReconnectIntervalSec>
       <DLQConfig>
       <DestinationQueue>queue/DLQ</DestinationQueue>
       <MaxTimesRedelivered>10</MaxTimesRedelivered>
       <TimeToLive>0</TimeToLive>
       </DLQConfig>
       </MDBConfig>
       </proxy-factory-config>
       </invoker-proxy-binding>
       </invoker-proxy-bindings>
      
       <container-configurations>
       <container-configuration>
       <container-name>HTTPS Message Driven Bean</container-name>
       <call-logging>true</call-logging>
       <invoker-proxy-binding-name>message-driven-bean-https</invoker-proxy-b>
       <container-interceptors>
       <interceptor>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor</i>
       <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
       <interceptor>org.jboss.ejb.plugins.RunAsSecurityInterceptor</interc>
       <!-- CMT -->
       <interceptor transaction="Container">org.jboss.ejb.plugins.TxInterc
      eptorCMT</interceptor>
       <interceptor transaction="Container" metricsEnabled="false">org.jbo
      ss.ejb.plugins.MetricsInterceptor</interceptor>
       <interceptor transaction="Container">org.jboss.ejb.plugins.MessageD
      rivenInstanceInterceptor</interceptor>
       <!-- BMT -->
       <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDriven
      InstanceInterceptor</interceptor>
       <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDriven
      TxInterceptorBMT</interceptor>
       <interceptor transaction="Bean" metricsEnabled="false">org.jboss.ej
      b.plugins.MetricsInterceptor</interceptor>
       <interceptor>org.jboss.resource.connectionmanager.CachedConnectionI
      nterceptor</interceptor>
       </container-interceptors>
       <instance-pool>org.jboss.ejb.plugins.MessageDrivenInstancePool</instan>
       <instance-cache></instance-cache>
       <persistence-manager></persistence-manager>
       <container-pool-conf>
       <MaximumSize>100</MaximumSize>
       </container-pool-conf>
      
      
      
       <depends>jboss.mq:service=DestinationManager</depends>
       <depends>jboss.mq:service=SecurityManager</depends>
       <depends>jboss.mq:service=Invoker</depends>
       <depends>jboss.mq:service=InvocationLayer,type=HTTPSUIL2</depends>
       <depends>jboss.web:service=WebServer</depends>
       <depends>jboss:service=TransactionManager</depends> <depends>jboss.security:service=JaasSecurityDomain,domain=RMI+SSL</dep>
       <depends>jboss.mq:service=HTTPInvocationLayer,type=HTTPS</depends>
       <depends>jboss:service=invoker,type=https</depends>
       <depends>jboss:service=invoker,type=https,target=Naming</depends>
       <depends>jboss.mq:service=JMSProviderLoader,type=https,name=HTTPSJMSProvider,socketType=SSL</depends>
       </container-configuration>
       </container-configurations>
      </jboss>
      
      
      


        • 1. Re: Beginner question: deployment order problem
          raja05

          Try changing ur loglevel to DEBUG(or TRACE) to see if you get anymore info on where(which depend) it hangs approx...

          • 2. Re: Beginner question: deployment order problem
            skidvd

            I have changed the log4j file to defualt to the DEBUG level. Here is where the conatiner hangs when started with the jar file in place:

            20:26:40,042 DEBUG [StatelessSessionContainer] Started jboss.j2ee:jndiName=apps/Ensuren/Registration,service=EJB
            20:26:40,043 DEBUG [LocalJBossServerDomain] handleNotification: javax.management.Notification[source=jboss.system:service=ServiceController,type= org.jboss.system.ServiceMBean.start,sequenceNumber=205,timeStamp=1094783200043,message=null,userData=jboss.j2ee:jndiName=apps/Ensuren/Registration,service=EJB]
            20:26:40,043 DEBUG [ServiceController] Starting dependent components for: jboss.j2ee:jndiName=apps/Ensuren/Registration,service=EJB dependent components: []
            20:26:40,044 DEBUG [EjbModule] startService, starting container: ResultsBean
            20:26:40,045 DEBUG [ServiceController] starting service jboss.j2ee:jndiName=local/ResultsBean,service=EJB
            20:26:40,045 DEBUG [MessageDrivenContainer] Starting jboss.j2ee:jndiName=local/ResultsBean,service=EJB
            20:26:40,046 DEBUG [MessageDrivenContainer] Begin java:comp/env for EJB: ResultsBean
            20:26:40,047 DEBUG [MessageDrivenContainer] TCL: org.jboss.util.loading.DelegatingClassLoader@a30fd
            20:26:40,048 DEBUG [MessageDrivenContainer] End java:comp/env for EJB: ResultsBean
            20:26:40,049 DEBUG [BaseLocalProxyFactory] ResultsBean cannot be Bound, doesn't have local and local home interfaces
            20:26:40,049 DEBUG [ServiceController] starting service jboss.j2ee:binding=message-driven-bean-https,jndiName=local/ResultsBean,plugin=invoker,service=EJB
            20:26:40,050 DEBUG [JMSContainerInvoker] Starting jboss.j2ee:binding=message-driven-bean-https,jndiName=local/ResultsBean,plugin=invoker,service=EJB
            20:26:40,051 DEBUG [JMSContainerInvoker] Initializing
            20:26:40,052 DEBUG [JMSContainerInvoker] Looking up provider adapter: java:/HTTPSJMSProvider
            20:26:40,053 DEBUG [JMSContainerInvoker] Provider adapter: org.jboss.jms.jndi.JNDIProviderAdapter@1ff6de1
            20:26:40,093 DEBUG [DLQHandler] Creating DLQHandler
            20:26:40,175 DEBUG [Util] httpsConnClass: class javax.net.ssl.HttpsURLConnection
            
            
            


            I would greatly appreciate any and all suggestions as I'm stuck as to why this would work just fine when deployed after container startup, but hang the container startup when it in the deply directory before run.sh is executed?

            • 3. Re: Beginner question: deployment order problem
              skidvd

              I am still struggling with this problem and am unfortunately not making much progress. Is there a way that I can ensure that my EJB .jar file will not be deployed until after the jmx-console? This would greatly assist with the debugging in that I could use the jmx-console listIncompletelyDeployed targets to see what is hanging the server. However, at present , my .jar file hangs the container startup before the jmx-console.war is deplyed.


              I'm stuck, please help.

              • 4. Re: Beginner question: deployment order problem
                skidvd

                I have isolated this problem a bit further. It seems to be directly related to the HTTPIL transport mechanism I'm setting up via the invoker-bindings, proxy-factory and container-config elements in the following jboss.xml file:

                <!DOCTYPE jboss PUBLIC
                 "-//JBoss//DTD JBOSS 3.2//EN"
                 "http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd">
                <jboss>
                 <enterprise-beans>
                 <message-driven>
                 <ejb-name>ResultsBean</ejb-name>
                 <destination-jndi-name>topic/discoveryResults</destination-jndi-name>
                 <!--
                 Use the following to tunnel over HTTPS
                 -->
                 <configuration-name>HTTPS Message Driven Bean</configuration-name>
                 <invoker-bindings>
                 <invoker>
                 <invoker-proxy-binding-name>
                 message-driven-bean-https</invoker-proxy-binding-name>
                 </invoker>
                 </invoker-bindings>
                 <resource-ref>
                 <res-ref-name>jms/TCF</res-ref-name>
                 <jndi-name>HTTPCOnnectionFactory</jndi-name>
                 </resource-ref>
                 <depends>jboss.web:service=WebServer</depends>
                
                 <depends>jboss.mq.destination:service=Topic,name=discoveryResults</depend>
                 <depends>jboss.security:service=JaasSecurityDomain,domain=RMI+SSL</depend>
                 <depends>jboss.mq:service=HTTPInvocationLayer,type=HTTPS</depends>
                 <depends>jboss.mq:service=TracingInterceptor</depends>
                 <depends>jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool</depends>
                 <depends>jboss.mq:service=DestinationManager</depends>
                 <depends>jboss.mq:service=SecurityManager</depends>
                 <depends>jboss.mq.destination:service=Queue,name=DLQ</depends>
                 <depends>jboss:service=Naming</depends>
                 <depends>jboss:service=invoker,type=jrmp</depends>
                 <depends>jboss:service=TransactionManager</depends>
                 <depends>jboss:service=invoker,type=https,target=Naming</depends>
                 <depends>jboss:service=invoker,type=https</depends>
                 <depends>jboss.jmx:type=adaptor,name=Invoker</depends>
                 <depends>jboss.jmx:type=adaptor,name=Invoker,protocol=jrmp,service=proxyFactory</depends>
                 <depends>jboss.jmx:type=adaptor,name=Invoker</depends>
                 <depends>jboss.mq:service=Invoker</depends>
                 <depends>jboss.mq:service=InvocationLayer,type=UIL2</depends>
                 <depends>jboss.mq:service=HTTPInvocationLayer,type=HTTPS</depends>
                 <depends>jboss.mq:service=JMSProviderLoader,type=https,name=HTTPSJMSProvider,socketType=SSL</depends>
                 <depends>jboss.mq:service=DestinationManager</depends>
                 <depends>jboss.mq:service=SecurityManager</depends>
                 <depends>jboss.mq:service=JMSProviderLoader,name=JMSProvider</depends>
                 <depends>jboss.mq:service=JMSProviderLoader,type=https,name=HTTPSJMSProvider,socketType=SSL</depends>
                 </message-driven>
                 </enterprise-beans>
                 <!-- A custom invoker for JMS/HTTPs -->
                 <invoker-proxy-binding>
                 <name>message-driven-bean-https</name>
                 <invoker-mbean>
                 <!--
                 use for HTTPIL
                 -->
                 jboss.mq:service=HTTPInvocationLayer,type=HTTPS
                 </invoker-mbean>
                 <proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-fac>
                 <proxy-factory-config>
                 <!--
                 Use with HTTPIL
                 -->
                 <JMSProviderAdapterJNDI>HTTPSJMSProvider</JMSProviderAdapterJNDI>
                 <ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJN>
                 <!-- WARN: Don't set this to zero until a bug in the pooled executor
                 is fixed -->
                 <MinimumSize>1</MinimumSize>
                 <MaximumSize>15</MaximumSize>
                 <KeepAliveMillis>30000</KeepAliveMillis>
                 <MaxMessages>1</MaxMessages>
                 <MDBConfig>
                 <ReconnectIntervalSec>10</ReconnectIntervalSec>
                 <DLQConfig>
                 <DestinationQueue>queue/DLQ</DestinationQueue>
                 <MaxTimesRedelivered>10</MaxTimesRedelivered>
                 <TimeToLive>0</TimeToLive>
                 </DLQConfig>
                 </MDBConfig>
                 </proxy-factory-config>
                 </invoker-proxy-binding>
                 </invoker-proxy-bindings>
                
                 <container-configurations>
                 <container-configuration>
                 <container-name>HTTPS Message Driven Bean</container-name>
                 <call-logging>true</call-logging>
                 <invoker-proxy-binding-name>message-driven-bean-https</invoker-proxy-b>
                 <container-interceptors>
                 <interceptor>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor</i>
                 <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
                 <interceptor>org.jboss.ejb.plugins.RunAsSecurityInterceptor</interc>
                 <!-- CMT -->
                 <interceptor transaction="Container">org.jboss.ejb.plugins.TxInterc
                eptorCMT</interceptor>
                 <interceptor transaction="Container" metricsEnabled="false">org.jbo
                ss.ejb.plugins.MetricsInterceptor</interceptor>
                 <interceptor transaction="Container">org.jboss.ejb.plugins.MessageD
                rivenInstanceInterceptor</interceptor>
                 <!-- BMT -->
                 <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor</interceptor>
                 <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT</interceptor>
                 <interceptor transaction="Bean" metricsEnabled="false">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
                 <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
                 </container-interceptors>
                 <instance-pool>org.jboss.ejb.plugins.MessageDrivenInstancePool</instance-pool>
                 <instance-cache></instance-cache>
                 <persistence-manager></persistence-manager>
                 <container-pool-conf>
                 <MaximumSize>100</MaximumSize>
                 </container-pool-conf>
                 <depends>jboss.web:service=WebServer</depends>
                
                 <depends>jboss.mq:service=DestinationManager</depends>
                 <depends>jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool</depends>
                 <depends>jboss.mq:service=SecurityManager</depends>
                 <depends>jboss.mq.destination:service=Queue,name=DLQ</depends>
                 <depends>jboss.mq.destination:service=Topic,name=discoveryResults</depends>
                 <depends>jboss.security:service=JaasSecurityDomain,domain=RMI+SSL</depends>
                 <depends>jboss.jca:service=CachedConnectionManager</depends>
                 <depends>jboss:type=Service,name=PropertyEditorManager</depends>
                 <depends>jboss.j2ee:service=ClientDeployer</depends>
                 <depends>jboss.alerts:service=ConsoleAlertListener</depends>
                 <depends>jboss.jca:service=CachedConnectionManager</depends>
                 <depends>jboss:type=Service,name=PropertyEditorManager</depends>
                 <depends>jboss.j2ee:service=ClientDeployer</depends>
                 <depends>jboss.alerts:service=ConsoleAlertListener</depends>
                 <depends>jboss.mq:service=HTTPInvocationLayer,type=HTTPS</depends>
                 <depends>jboss.mq:service=TracingInterceptor</depends>
                 <depends>jboss:service=Naming</depends>
                 <depends>jboss:service=invoker,type=jrmp</depends>
                 <depends>jboss:service=TransactionManager</depends>
                 <depends>jboss:service=invoker,type=https,target=Naming</depends>
                 <depends>jboss:service=invoker,type=https</depends>
                 <depends>jboss.jmx:type=adaptor,name=Invoker</depends>
                 <depends>jboss.jmx:type=adaptor,name=Invoker,protocol=jrmp,service=proxyFactory</depends>
                 <depends>jboss.jmx:type=adaptor,name=Invoker</depends>
                 <depends>jboss.mq:service=Invoker</depends>
                 <depends>jboss.mq:service=InvocationLayer,type=UIL2</depends>
                 <depends>jboss.mq:service=HTTPInvocationLayer,type=HTTPS</depends>
                 <depends>jboss.mq:service=JMSProviderLoader,type=https,name=HTTPSJMSProvider,socketType=SSL</depends>
                 <depends>jboss.mq:service=DestinationManager</depends>
                 <depends>jboss.mq:service=SecurityManager</depends>
                 <depends>jboss.mq:service=JMSProviderLoader,name=JMSProvider</depends>
                
                 <depends>jboss.mq:service=JMSProviderLoader,type=https,name=HTTPSJMSProvi
                der,socketType=SSL</depends>
                 </container-configuration>
                 </container-configurations>
                </jboss>
                
                


                As you can see, I have been building up (incrementally adding one or two at a time) a large depends list in order to address this problem. However, I still end up in the same place - everything works fine if and only if the jar file is deployed AFTER container startup. If the container is started with the jar file in place, it will hang during the deloyment of the MDB.

                By the way, setting the EJBDeployer to DEBUG has not shed any light on this. I have additionally tried to use the jmx-console listIncompletelyDeployed MBeans to no avail, as it is NOT yet available when the container hangs on startup in response to this MDB.

                What depends or other items am I missing? What do I need to do to get this MDB (which appears to be working just fine) to NOT hang the conatiner when it's associated jar file exists in the deploy directory at container startup time?

                Thanks in advance for your help!

                • 5. Re: Beginner question: deployment order problem
                  dimitris

                  I guess the quick and dirty solution is to just configured the deployment scanner (conf/jboss-service.xml, look at the very bottom) to use the deployment prefix shorter instead of the default sorter.

                  Then just rename your xx.jar to, e.g. 99-xx.jar and this more or less will make sure it is deployed at the very end.

                  Then get rid of all those dependencies and relax!

                  Cheers
                  /Dimitris

                  • 6. Re: Beginner question: deployment order problem
                    skidvd

                     

                    "dimitris@jboss.org" wrote:
                    I guess the quick and dirty solution is to just configured the deployment scanner (conf/jboss-service.xml, look at the very bottom) to use the deployment prefix shorter instead of the default sorter.

                    Then just rename your xx.jar to, e.g. 99-xx.jar and this more or less will make sure it is deployed at the very end.

                    Then get rid of all those dependencies and relax!

                    Cheers
                    /Dimitris


                    Dimitris:

                    Thanks for the suggestion, however I have already tried that. Even if the jar file is the vary last thing deployed it still hangs the container. I also package the MDB inside and ear file (since ears are deployed by default after all jars and wars) - same result. I'm strongly suspectting that the HTTPIL needs to have the Tomcat Connector listening - which does not appear to happen until just after the container has initialized. Any ideas on how to denote a depends on that Connector being up?

                    Thanks again!

                    • 7. Re: Beginner question: deployment order problem
                      dimitris

                      That reminds me of something. I think in the latest jboss version tomcat completes initialization AFTER server is started...

                      What version are you using?

                      • 8. Re: Beginner question: deployment order problem
                        dimitris

                        I'd propose you simplify your descriptor to the absolute minimum. It seems there is a lot of redundancy there.

                        I'm copying Scott's reply about this:


                        Tomcat as a service does not delay its initialization. It does delay the start of its connectors until the server sends a start notification, but this is seperate from it being started. All wars would be started as soon as the jbossweb-tomcat50.sar has been started, but the transport would not be active until the server started.


                        Good luck!
                        /Dimitris

                        • 9. Re: Beginner question: deployment order problem
                          skidvd

                           

                          "dimitris@jboss.org" wrote:
                          That reminds me of something. I think in the latest jboss version tomcat completes initialization AFTER server is started...

                          What version are you using?


                          Yes, this is what I am seeing - tomcat is not "accepting" traffic until aftre the container has fully initialized.

                          I'm using 3.2.5. Is there any way to code a dependency for this and/or change this behavior?

                          • 10. Re: Beginner question: deployment order problem
                            dimitris

                            The issue's getting quite advanced for a Beginner's question!

                            If tomcat waits for a "started" event from the server, before it starts the connector, then could you declare a dependency on that particular connector? (or have you tried that already).

                            I guess this is really a question for the tomcat people or jboss support ;)

                            Regards
                            /Dimitris

                            • 11. Re: Beginner question: deployment order problem
                              skidvd

                              Dimitris:

                              Thanks again for your help. I have resolved the problem.

                              Apparently I did not need to override the invoker-binding for the MDB in a manner parallel to what is required for an EJB in order to access it over an HTTP transport. Removing this has removed the deployment order problem.

                              Cheers.