6 Replies Latest reply on Sep 10, 2008 2:23 AM by manivannanvenkatasubbu

    JMS-dependent MBean breaks on JBoss startup

    mshivas

      I have an MBean service that writes to a JMS Queue. It deploys fine when the server is running but fails to deploy when JBoss is started after the .sar is deployed.

      The error is javax.naming.NameNotFoundException: ConnectionFactory not bound

      The code looks like:

       public void startService() throws Exception {
       InitialContext iniCtx = new InitialContext();
       Object tmp = iniCtx.lookup("ConnectionFactory");
       QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
       ...
       }
      

      What tag do I put in my jboss-service.xml to make sure that this MBean waits for JMS to come online before starting up?

      This seems like it would be a FAQ but I've scoured the forums and can't find a working solution. THe closest I have gotten is this...
      <depends>jboss.mq:service=JMSProviderLoader</depends>
      

      ...which takes care of the NamingException, but replaces it with this error:

      11:16:47,545 ERROR [URLDeploymentScanner] MBeanException: Exception in MBean operation 'checkIncompleteDeployments()'
      Cause: Incomplete Deployment listing:
      Packages waiting for a deployer:

      Incompletely deployed packages:

      MBeans waiting for classes:

      MBeans waiting for other MBeans:
      [ObjectName: smpp.test:service=Sender
      state: CONFIGURED
      I Depend On: jboss:service=Naming
      jboss.mq:service=JMSProviderLoader

      Depends On Me: ]

      Thanks in advance,


      Mike


        • 1. Re: JMS-dependent MBean breaks on JBoss startup

          IIRC, the invocation layer service the connection factory is bound to, for example jboss.mq:service=InvocationLayer,type=UIL2

          Or create a deploy.last directory under deploy/ directory and drop your package there. Should work too.

          • 2. Re: JMS-dependent MBean breaks on JBoss startup
            mshivas

            Thank you Juha,

            Adding this attribute to my jboss-service.xml file did the trick.

            <depends>jboss.mq:service=InvocationLayer,type=UIL2</depends>
            


            Mike

            • 3. Re: JMS-dependent MBean breaks on JBoss startup
              clau25

              I have a similar situation. I have a MBean that listens to a JMS Topic. I had the same error at starting up:

              javax.naming.NameNotFoundException: ConnectionFactory not bound

              But i solved this using your hint and making it depend on jboss.mq:service=InvocationLayer,type=UIL2

              I have now another NamingException:

              javax.naming.NameNotFoundException: topic not bound

              Could you tell me what tag should i still add in my jboss-service.xml?

              TIA,
              clau


              • 4. Re: JMS-dependent MBean breaks on JBoss startup
                clau25

                I've just figured that out, so i thought i would post it:

                <depends>jboss.mq.destination:service=Topic,name=topicName</depends>
                


                where topicName is the name of my topic in jbossmq-destinations-service.xml

                clau

                • 5. Re: JMS-dependent MBean breaks on JBoss startup
                  bnadesan

                  Hi,

                  I still get the javax.naming.NameNotFoundException: QueueConnectionFactory not bound exception When I start my app server(jboss 3.2.3).

                  Here is the code snippet in my MBean

                  InitialContext ctx = new InitialContext();

                  QueueConnectionFactory qconFactory = (QueueConnectionFactory)
                  ctx.lookup("QueueConnectionFactory");

                  QueueConnection qcon = qconFactory.createQueueConnection();
                  QueueSession qsession =
                  qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

                  Queue queue = (Queue) ctx.lookup(QUEUE);
                  QueueReceiver qreceiver = qsession.createReceiver(queue);


                  and here in the jboss-service.xml
                  ---------------------------------------


                  jboss.mq:service=InvocationLayer,type=UIL2
                  jboss.mq.destination:service=Queue,name=testQueue

                  • 6. Re: JMS-dependent MBean breaks on JBoss startup
                    manivannanvenkatasubbu

                    Hi,

                    I am experiencing the same problem connection factory not bound when moving my code from one environment to another. Could you please help me in fixing this problem? It seems to be a problem with the cluster environment.

                    Thanks in advance,
                    Mani.

                    Following this my server log:

                    16:20:05,673 ERROR [JCAPsService] OrderIntergationService : ConnectionFactory not bound
                    16:20:05,673 ERROR [STDERR] javax.naming.NameNotFoundException: ConnectionFactory not bound
                    16:20:05,674 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
                    16:20:05,674 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
                    16:20:05,674 ERROR [STDERR] at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
                    16:20:05,674 ERROR [STDERR] at org.jnp.server.NamingServer.lookup(NamingServer.java:296)
                    16:20:05,674 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
                    16:20:05,674 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
                    16:20:05,674 ERROR [STDERR] at javax.naming.InitialContext.lookup(InitialContext.java:351)
                    16:20:05,674 ERROR [STDERR] at com.fb.integration.ATGOutbound.FBQueueClient.(FBQueueClient.java:65)
                    16:20:05,674 ERROR [STDERR] at com.fb.integrations.OrderIntergationService.sendOrder(OrderIntergationService.java:836)
                    16:20:05,674 ERROR [STDERR] at com.fb.integrations.OrderIntergationService.sendNewOrder(OrderIntergationService.java:128)
                    16:20:05,674 ERROR [STDERR] at atg.commerce.order.processor.ProcSetFBOrderFields.runProcess(ProcSetFBOrderFields.java:497)
                    16:20:05,674 ERROR [STDERR] at atg.service.pipeline.PipelineLink.runProcess(PipelineLink.java:233)
                    16:20:05,674 ERROR [STDERR] at atg.service.pipeline.PipelineChain.runProcess(PipelineChain.java:343)
                    16:20:05,675 ERROR [STDERR] at atg.service.pipeline.PipelineChainContext.runProcess(PipelineChainContext.java:185)
                    16:20:05,675 ERROR [STDERR] at atg.service.pipeline.PipelineManager.runProcess(PipelineManager.java:453)
                    16:20:05,675 ERROR [STDERR] at atg.commerce.order.OrderManager.processOrder(OrderManager.java:2782)
                    16:20:05,675 ERROR [STDERR] at atg.commerce.order.OrderManager.processOrder(OrderManager.java:2708)
                    16:20:05,675 ERROR [STDERR] at atg.commerce.order.OrderManager.processOrder(OrderManager.java:2693)
                    16:20:05,675 ERROR [STDERR] at atg.commerce.order.ShoppingCartFormHandler.handleMoveToOrderCommit(ShoppingCartFormHandler.java:2816)
                    16:20:05,675 ERROR [STDERR] at com.fb.commerce.order.FBShoppingCartFormHandler.handleMcheck(FBShoppingCartFormHandler.java:506)
                    16:20:05,675 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                    16:20:05,675 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                    16:20:05,675 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                    16:20:05,675 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
                    16:20:05,675 ERROR [STDERR] at atg.droplet.EventSender.sendEvent(EventSender.java:575)
                    16:20:05,675 ERROR [STDERR] at atg.droplet.FormTag.doSendEvents(FormTag.java:791)
                    16:20:05,675 ERROR [STDERR] at atg.droplet.FormTag.sendEvents(FormTag.java:640)
                    16:20:05,676 ERROR [STDERR] at atg.droplet.DropletEventServlet.sendEvents(DropletEventServlet.java:523)
                    16:20:05,676 ERROR [STDERR] at atg.droplet.DropletEventServlet.service(DropletEventServlet.java:550)
                    16:20:05,676 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,676 ERROR [STDERR] at atg.servlet.sessionsaver.SessionSaverServlet.service(SessionSaverServlet.java:2442)
                    16:20:05,676 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,676 ERROR [STDERR] at atg.commerce.order.CommerceCommandServlet.service(CommerceCommandServlet.java:128)
                    16:20:05,676 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,676 ERROR [STDERR] at atg.commerce.promotion.PromotionServlet.service(PromotionServlet.java:191)
                    16:20:05,676 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,676 ERROR [STDERR] at atg.userprofiling.AccessControlServlet.service(AccessControlServlet.java:602)
                    16:20:05,676 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,676 ERROR [STDERR] at atg.userprofiling.PageEventTriggerPipelineServlet.service(PageEventTriggerPipelineServlet.java:169)
                    16:20:05,676 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,676 ERROR [STDERR] at atg.userprofiling.SessionEventTrigger.service(SessionEventTrigger.java:461)
                    16:20:05,676 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,677 ERROR [STDERR] at atg.userprofiling.ProfileRequestServlet.service(ProfileRequestServlet.java:477)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.DynamoPipelineServlet.service(DynamoPipelineServlet.java:469)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.PathAuthenticationPipelineServlet.service(PathAuthenticationPipelineServlet.java:370)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,677 ERROR [STDERR] at atg.userprofiling.sso.PassportServlet.service(PassportServlet.java:561)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.security.ThreadUserBinderServlet.service(ThreadUserBinderServlet.java:91)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:116)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.HeadPipelineServlet.passRequest(HeadPipelineServlet.java:1093)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.HeadPipelineServlet.service(HeadPipelineServlet.java:781)
                    16:20:05,677 ERROR [STDERR] at atg.servlet.pipeline.PipelineableServletImpl.service(PipelineableServletImpl.java:231)
                    16:20:05,677 ERROR [STDERR] at atg.filter.dspjsp.PageFilter.doFilter(Unknown Source)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                    16:20:05,678 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
                    16:20:05,678 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
                    16:20:05,678 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                    16:20:05,678 ERROR [STDERR] at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
                    16:20:05,678 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                    16:20:05,679 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
                    16:20:05,679 ERROR [STDERR] at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
                    16:20:05,679 ERROR [STDERR] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
                    16:20:05,679 ERROR [STDERR] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
                    16:20:05,679 ERROR [STDERR] at java.lang.Thread.run(Thread.java:595)
                    16:20:05,679 ERROR [JCAPsService] OrderIntergationService : Exiting sendNewOrder method
                    16:20:05,679 INFO [UnknownService] ProcSetFBOrderField runProcess End