13 Replies Latest reply on Nov 10, 2005 10:34 AM by mikeg123

    MDB's, DataSource in a cluster

      Hi,
      i already checked the cluster and jms-forum for answers to my questions and found stuff which confused me more than it helps. Also the docu doesnt't cover my issues.

      Right now, my application is working on a single jboss instance.
      Multiple MDB's, SSB's and ....
      I'm happy with that.
      Now the next step is to make it cluster aware.
      So i changed the deployment descriptors and so on..


      As far as i know, jboss cluster (using 3.2.6) is working with a singleton JMS-Provider. No problem with this fact.

      The first issue comes up, when i fail to deploy my MDB's on each node.
      I think the MDB's didn't find the remote JMS-Provider, because some related services were only deployed on the master node. Had no problem on the master node.
      There are a couple of people saying that this is not possible and on the other side there are people saying the opposite. If it is possible, what should be changed in the descriptors of the MDB's or in config of JBOSS to get it working.

      So i decided to deploy the MDB's on the master only using deploy-hasingleton.
      Next issue comes up. Each SSB called by the MDB's is instantiated on the local (master) node only. So no load-balancing happenend. The processing was on the master only. So for a test i removed these SSB's from the master node with the result, that the round-robin dispatching worked in the expected way. But this is only an ugly workaround nothing for a productive system. So is there a way to get the load-balancing working for MDB's calling SSB's - a way to get rid of checking the local JNDI tree before checking the HAJNDI tree , ... ? I tried that with different properties to the InitialContext(), without success.

      Final issue:
      Maybe I'm also wrong with that - sorry in advance :-) - but my application fails to get the registered DataSource via JNDI lookup. I also tested that with different props to InitialContext(). I can see the DataSource in the JNDIView, but i'm not able to look it up. Please notice, the same code works on a "normal" jboss installation. So i think, it's possibly a limitation when running in the cluster. Any idea? Any magic flag ?

      Thanks for your help.

        • 1. Re: MDB's, DataSource in a cluster

          Hi all!

          found the following about my DataSource issue:

          *********************************************************
          Jboss just bind the datasourc in local jndi namespace, so
          you cannot retrieve it out of jboss jvm. If you want that,
          you should bind the datasource to the global namespace :
          In XX-ds.xml, under <jndi-name>, add this:
          <use-java-context>false</use-java-context>

          test again ! :)

          btw, you must use jboss4.0
          *********************************************************

          Does this also fix my cluster issue, when i try the explicit access to a DataSource in a module running in the JBOSS VM?

          << btw, you must use jboss4.0
          So no workaround for 3.2.6 ?

          Thanx!





          • 2. Re: MDB's, DataSource in a cluster

            Hi,
            think i should continue the smalltalk with myself :-)

            The biggest problem for me right now is, that in the scope of the MDB's, which are only deployed on the MasterNode, a call to a SSB will result in an local invocation. So no load-balancing can happen. My hope was, that this is only true for the first one looked up. So i added one more SSB, which is invoked by the fist "local" SSB. This one should act as the dispatcher. But the results are the same. Doesn't matter, how many SSB's i add to the processing chain, when the initiator is a MDB and this one will find the SSB in the local tree, all the further SSB's invoked are also locally.
            So right now, the only solution is, to remove the SSB from the MasterNode to be able to get load-balancing. But this leads to the fact that the installation of a "Master"-node and a "Normal"-node would be different, and in case of a "Master" crash, the newly selected master would continue with the "only-local" processing.

            I can't imagine that this is by design and i hope that i'm doing something wrong or looking in the wrong direction.

            Any help would be appreciated.

            Thanx...






            • 3. Re: MDB's, DataSource in a cluster

              Hi,

              nobody can help me ?

              Nobody with similar problems ?

              • 4. Re: MDB's, DataSource in a cluster
                dcreado

                Hi Tropi,

                I had a situation just like that, but it works fine to me.
                I had setup 2 architectures:
                - one with JMS controlled by the Master node
                - the JMS controlled by a special machine.

                each one works very fine.
                which errors did you got?

                • 5. Re: MDB's, DataSource in a cluster

                  Hi dcreado,

                  thanx for your reply.


                  when i deploy the MessageDrivenBeans on the "master" and on each other node, i will run into the following deployment issue.

                  ***************************************************
                  org.jboss.deployment.scanner.URLDeploymentScanner JBoss main LOCALHOST ERROR Incomplete Deployment listing:

                  MBeans waiting for other MBeans:
                  ObjectName: jboss.mq.destination:service=Topic,name=ChannelRespond
                  state: CONFIGURED
                  I Depend On: jboss.mq:service=DestinationManager

                  Depends On Me:
                  ObjectName: jboss.mq.destination:service=Queue,name=EngineDLQ
                  state: CONFIGURED
                  I Depend On: jboss.mq:service=DestinationManager
                  jboss.mq:service=SecurityManager

                  Depends On Me:
                  ObjectName: jboss.mq.destination:service=Queue,name=MInitiatorReceiver
                  state: CONFIGURED
                  I Depend On: jboss.mq:service=DestinationManager
                  jboss.mq:service=SecurityManager

                  Depends On Me:
                  ObjectName: jboss.mq.destination:service=Queue,name=ResponseQueue
                  state: CONFIGURED
                  I Depend On: jboss.mq:service=DestinationManager

                  Depends On Me:
                  ObjectName: jboss.mq.destination:service=Queue,name=RecMonitor
                  state: CONFIGURED
                  I Depend On: jboss.mq:service=DestinationManager

                  Depends On Me:

                  MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM:
                  ObjectName: jboss.mq:service=DestinationManager
                  state: NOTYETINSTALLED
                  I Depend On:
                  Depends On Me: jboss.mq.destination:service=Topic,name=ChannelRespond
                  jboss.mq.destination:service=Queue,name=EngineDLQ
                  jboss.mq.destination:service=Queue,name=MInitiatorReceiver
                  jboss.mq.destination:service=Queue,name=ResponseQueue
                  jboss.mq.destination:service=Queue,name=RecMonitor

                  ***************************************************

                  It's because, the DestinationManager is only deployed on the "master" as part of the "deploy-hasingleton" deployment. So the master has no problem, but each other node will run into this incomplete deployment issue.
                  My MDB's are using a jdbc persistence manager. It is configured by
                  xxx-jdbc2-service.xml, which is located in the ..\deploy-hasingleton\jms.
                  In the same file is the configuration of the DestinationManager and related services.

                  So is there are configuration option ?




                  • 6. Re: MDB's, DataSource in a cluster
                    dcreado

                    You can put the file with the Queue/Topic definition under deploy-hasingleton.
                    This will force the Queue/Topic to exist only on one node of the cluster.

                    The invoker of MDB will use the JMSProviderLoader (defined in deploy\jms\jajndi-jms-ds.xml) which in turn will lookup the ConnectionFactory and Queues using hajndi.
                    That works really fine...

                    • 7. Re: MDB's, DataSource in a cluster

                      Hi dcreado,

                      thanx, you pointed me in the right direction.
                      It works now.
                      I have to add the definition files for the jms-queues.

                      No need when using MDB's outside the cluster world.
                      A temporary destination is created by JBoss automatically on startup.

                      Also the problem with the DataSource is gone.
                      The lookup works, when specifying the non HA-JNDI properties to the InitialContext. So local lookup works.






                      • 8. Re: MDB's, DataSource in a cluster
                        npandya_in

                        HI rsTropi
                        I have a same problem.
                        I put my jms-queues defination xml file in HaSingleTone diployer file. but it's not working.

                        can u please guide me i have to change another thing also?

                        Thanks,
                        Nirav Pandya

                        • 9. Re: MDB's, DataSource in a cluster

                          Hi Nirav Pandya,

                          the definition file was the missing link to solve my problem.

                          Here is an extract of it:
                          ***********************

                          <server>
                          
                           <mbean code="org.jboss.mq.server.jmx.Queue"
                           name="jboss.mq.destination:service=Queue,name=EngineDLQ">
                           <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
                           <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
                           </mbean>
                          ...
                          

                          *************************
                          But keep in mind, that you have to provide "processing load" to the AppServer to test the load-balancing. In the beginning i started with only a few processing tasks and detected no load-balancing. When i started to increase the processing amount, i saw further nodes beginning to process.

                          You have an error message?


                          • 10. Re: MDB's, DataSource in a cluster
                            npandya_in

                            Hi rsTropi
                            Thanks

                            after doing all the thing when server start there is no error.

                            At the time of lookup factory it gives me error. in a special case. case like this. my master node and another node both are up and when request goes on another node it gives this error.

                            11:57:26,078 ERROR [LogInterceptor] RuntimeException in method: public abstract int com.csam.wsc.enabling.payment.ejb.PaymentInstrumentManager.applyOfferUpdate(com.csam.wsc.enabling.payment.PaymentOffer):
                            com.csam.wsc.enabling.core.exception.TechnicalException: com.csam.wsc.enabling.core.exception.TechnicalException: javax.naming.NameNotFoundException: ConnectionFactory not bound
                            at com.csam.wsc.enabling.sync.SyncDispatcher.dispatchOutwardItem(SyncDispatcher.java:162)
                            at com.csam.wsc.enabling.payment.ejb.bean.PaymentInstrumentManagerBean.applyOfferUpdate(PaymentInstrumentManagerBean.java:177)
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                            at java.lang.reflect.Method.invoke(Method.java:585)
                            at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
                            at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214)
                            at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
                            at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:130)
                            at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:51)
                            at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
                            at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
                            at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:335)
                            at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
                            at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:139)
                            at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
                            at org.jboss.ejb.plugins.CleanShutdownInterceptor.invoke(CleanShutdownInterceptor.java:264)
                            at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
                            at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
                            at org.jboss.ejb.Container.invoke(Container.java:873)
                            at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:413)
                            at org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:88)
                            at $Proxy173.applyOfferUpdate(Unknown Source)
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                            at java.lang.reflect.Method.invoke(Method.java:585)
                            at org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbInvokerInterceptor.java:62)
                            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
                            at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
                            at $Proxy195.applyOfferUpdate(Unknown Source)
                            at com.csam.wsc.enabling.service.web.action.UpdatePaymentOfferAction.execute(UpdatePaymentOfferAction.java:40)
                            at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:283)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:166)
                            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
                            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
                            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
                            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
                            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
                            at com.csam.wsc.enabling.core.waf.interceptor.I18NInterceptor.intercept(I18NInterceptor.java:43)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
                            at com.opensymphony.xwork.interceptor.AbstractLifecycleInterceptor.intercept(AbstractLifecycleInterceptor.java:55)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
                            at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at com.csam.wsc.enabling.core.waf.filter.LoginFilter.doFilter(LoginFilter.java:281)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at com.csam.wsc.enabling.core.waf.filter.EncodingFilter.doFilter(EncodingFilter.java:100)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
                            at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
                            at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
                            at org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
                            at org.jboss.web.tomcat.tc5.session.JvmRouteValve.invoke(JvmRouteValve.java:73)
                            at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
                            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
                            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
                            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
                            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
                            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
                            at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
                            at java.lang.Thread.run(Thread.java:595)
                            Caused by: com.csam.wsc.enabling.core.exception.TechnicalException: javax.naming.NameNotFoundException: ConnectionFactory not bound
                            at com.csam.wsc.enabling.core.util.ServiceLocator.getQueueConnectionFactory(ServiceLocator.java:102)
                            at com.csam.wsc.enabling.sync.SyncDispatcher.dispatchOutwardItem(SyncDispatcher.java:127)
                            ... 79 more
                            Caused by: javax.naming.NameNotFoundException: ConnectionFactory not bound
                            at org.jnp.server.NamingServer.getBinding(NamingServer.java:491)
                            at org.jnp.server.NamingServer.getBinding(NamingServer.java:499)
                            at org.jnp.server.NamingServer.getObject(NamingServer.java:505)
                            at org.jnp.server.NamingServer.lookup(NamingServer.java:278)
                            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
                            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
                            at javax.naming.InitialContext.lookup(InitialContext.java:351)
                            at com.csam.wsc.enabling.core.util.ServiceLocator.getQueueConnectionFactory(ServiceLocator.java:100)
                            ... 80 more
                            11:57:27,125 INFO [AdminLogger] [/tp14/tpweb/admin/refreshCardOfferAction.action, 192.168.1.183, wscroot,1,SUPER_ADMIN, {all=/tp14/tpweb/admin/services/cards/credit/issueCardDetail.jsp, offerId=creditcard.credit.csamvisa, success=/tp14/tpweb/admin/services/cards/credit/offerDetail.jsp?offerId=creditcard.credit.csamvisa}, javax.ejb.EJBException: RuntimeException; CausedByException is:
                            com.csam.wsc.enabling.core.exception.TechnicalException: javax.naming.NameNotFoundException: ConnectionFactory not bound
                            at $Proxy173.applyOfferUpdate(Unknown Source)
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                            at java.lang.reflect.Method.invoke(Method.java:585)
                            at org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbInvokerInterceptor.java:62)
                            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
                            at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
                            at $Proxy195.applyOfferUpdate(Unknown Source)
                            at com.csam.wsc.enabling.service.web.action.UpdatePaymentOfferAction.execute(UpdatePaymentOfferAction.java:40)
                            at com.csam.wsc.enabling.core.waf.interceptor.I18NInterceptor.intercept(I18NInterceptor.java:43)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                            at com.csam.wsc.enabling.core.waf.filter.LoginFilter.doFilter(LoginFilter.java:281)
                            at com.csam.wsc.enabling.core.waf.filter.EncodingFilter.doFilter(EncodingFilter.java:100)
                            at java.lang.Thread.run(Thread.java:595)
                            com.csam.wsc.enabling.core.exception.TechnicalException: com.csam.wsc.enabling.core.exception.TechnicalException: javax.naming.NameNotFoundException: ConnectionFactory not bound
                            at com.csam.wsc.enabling.sync.SyncDispatcher.dispatchOutwardItem(SyncDispatcher.java:162)
                            at com.csam.wsc.enabling.payment.ejb.bean.PaymentInstrumentManagerBean.applyOfferUpdate(PaymentInstrumentManagerBean.java:177)
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                            at java.lang.reflect.Method.invoke(Method.java:585)
                            at $Proxy173.applyOfferUpdate(Unknown Source)
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                            at java.lang.reflect.Method.invoke(Method.java:585)
                            at org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbInvokerInterceptor.java:62)
                            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
                            at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
                            at $Proxy195.applyOfferUpdate(Unknown Source)
                            at com.csam.wsc.enabling.service.web.action.UpdatePaymentOfferAction.execute(UpdatePaymentOfferAction.java:40)
                            at com.csam.wsc.enabling.core.waf.interceptor.I18NInterceptor.intercept(I18NInterceptor.java:43)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                            at com.csam.wsc.enabling.core.waf.filter.LoginFilter.doFilter(LoginFilter.java:281)
                            at com.csam.wsc.enabling.core.waf.filter.EncodingFilter.doFilter(EncodingFilter.java:100)
                            at java.lang.Thread.run(Thread.java:595)
                            Caused by: com.csam.wsc.enabling.core.exception.TechnicalException: javax.naming.NameNotFoundException: ConnectionFactory not bound
                            at com.csam.wsc.enabling.core.util.ServiceLocator.getQueueConnectionFactory(ServiceLocator.java:102)
                            at com.csam.wsc.enabling.sync.SyncDispatcher.dispatchOutwardItem(SyncDispatcher.java:127)
                            ... 79 more
                            Caused by: javax.naming.NameNotFoundException: ConnectionFactory not bound
                            at org.jnp.server.NamingServer.getBinding(NamingServer.java:491)
                            at org.jnp.server.NamingServer.getBinding(NamingServer.java:499)
                            at org.jnp.server.NamingServer.getObject(NamingServer.java:505)
                            at org.jnp.server.NamingServer.lookup(NamingServer.java:278)
                            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
                            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
                            at javax.naming.InitialContext.lookup(InitialContext.java:351)
                            at com.csam.wsc.enabling.core.util.ServiceLocator.getQueueConnectionFactory(ServiceLocator.java:100)
                            ... 80 more
                            ]
                            11:57:27,734 INFO [DefaultListableBeanFactory] Bean 'com.opensymphony.webwork.dispatcher.ServletDispatcherResult' instantiated via constructor [public com.opensymphony.webwork.dispatcher.ServletDispatcherResult()]
                            11:57:27,750 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
                            java.lang.NumberFormatException: null
                            at java.lang.Integer.parseInt(Integer.java:415)
                            at java.lang.Integer.parseInt(Integer.java:497)
                            at org.apache.jsp.tp14.tpweb.admin.services.cards.credit.issueCardDetail_jsp._jspService(org.apache.jsp.tp14.tpweb.admin.services.cards.credit.issueCardDetail_jsp:105)
                            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
                            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
                            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
                            at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
                            at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
                            at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:81)
                            at com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:109)
                            at com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:258)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:182)
                            at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at com.csam.wsc.enabling.core.waf.filter.LoginFilter.doFilter(LoginFilter.java:281)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at com.csam.wsc.enabling.core.waf.filter.EncodingFilter.doFilter(EncodingFilter.java:100)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
                            at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
                            at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
                            at org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
                            at org.jboss.web.tomcat.tc5.session.JvmRouteValve.invoke(JvmRouteValve.java:73)
                            at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
                            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
                            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
                            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
                            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
                            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
                            at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
                            at java.lang.Thread.run(Thread.java:595)
                            11:57:28,312 ERROR [ServletDispatcher] Could not execute action
                            org.apache.jasper.JasperException: null
                            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
                            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
                            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
                            at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
                            at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
                            at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:81)
                            at com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:109)
                            at com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:258)
                            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:182)
                            at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at com.csam.wsc.enabling.core.waf.filter.LoginFilter.doFilter(LoginFilter.java:281)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at com.csam.wsc.enabling.core.waf.filter.EncodingFilter.doFilter(EncodingFilter.java:100)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
                            at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
                            at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
                            at org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
                            at org.jboss.web.tomcat.tc5.session.JvmRouteValve.invoke(JvmRouteValve.java:73)
                            at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
                            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
                            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
                            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
                            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
                            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
                            at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
                            at java.lang.Thread.run(Thread.java:595)
                            11:57:28,828 ERROR [[webwork]] Servlet.service() for servlet webwork threw exception
                            java.lang.IllegalStateException
                            at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:395)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.sendError(ServletDispatcher.java:396)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:282)
                            at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
                            at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at com.csam.wsc.enabling.core.waf.filter.LoginFilter.doFilter(LoginFilter.java:281)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at com.csam.wsc.enabling.core.waf.filter.EncodingFilter.doFilter(EncodingFilter.java:100)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
                            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
                            at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
                            at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
                            at org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
                            at org.jboss.web.tomcat.tc5.session.JvmRouteValve.invoke(JvmRouteValve.java:73)
                            at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
                            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
                            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
                            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
                            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
                            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
                            at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
                            at java.lang.Thread.run(Thread.java:595)
                            11:57:29,187 ERROR [[localhost]] Exception Processing ErrorPage[exceptionType=java.lang.Exception, location=/exception.jsp]
                            java.lang.IllegalStateException
                            at org.apache.coyote.Response.reset(Response.java:296)
                            at org.apache.catalina.connector.Response.reset(Response.java:642)
                            at org.apache.catalina.connector.Response.reset(Response.java:908)
                            at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:355)
                            at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:211)
                            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:134)
                            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
                            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
                            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
                            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
                            at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
                            at java.lang.Thread.run(Thread.java:595)

                            For lookup i m useing this code.
                            QueueConnectionFactory qconFactory = (QueueConnectionFactory)ic.lookup(FACTORY_JNDI)

                            FYI
                            i m useing Jboss4.0.2 and jdk1.5.1


                            Thanks,
                            Nirav Pandya

                            • 11. Re: MDB's, DataSource in a cluster

                              Hi Nirav Pandya,

                              so you are trying to lookup a QueueConnectionFactory in the scope of SSB.

                              Possibly you missed to declare the QueueConnectionFactory as an external resource.

                              We are using XDoclet/EJBDoclet for that.

                              So in the related SSB i have :

                              For QueueConnectionFactory:

                              * @ejb.resource-ref
                              * res-ref-name="jms/QueueConnectionFactory"
                              * res-type="javax.jms.QueueConnectionFactory"
                              * res-auth="Container"

                              For jms-queues addressed by the SSB:

                              * @ejb.resource-ref
                              * res-ref-name="jms/MCorrelatorReceiver"
                              * res-type="javax.jms.Queue"
                              * res-auth="Container"

                              ... and furthermore:

                              * @jboss.resource-ref
                              * res-ref-name="jms/QueueConnectionFactory"
                              * resource-name="queuefactoryref"
                              * @jboss.resource-manager
                              * res-man-name="queuefactoryref"
                              * res-man-jndi-name="java:/JmsXA"

                              .. finally, but think that's clear:

                              * @jboss.clustered cluster="true"
                              * @jboss.container-configuration name="Clustered_SSB"


                              I make the lookup using: "java:/JmsXA" to get the QueueConnectionFactory.

                              Best Regards
                              Reinhard



                              • 12. Re: MDB's, DataSource in a cluster
                                mikeg123

                                Hello,

                                I'm still having this problem, I did deploye xml file with all the topics/queue in the deploy-hasingleton/jms directory
                                and I can see it being successfully deployed on the master console, but when I start my second node still getting this:

                                ObjectName: jboss.mq.destination:service=Queue,name=TaskQueue
                                state: NOTYETINSTALLED
                                I Depend On:
                                Depends On Me: jboss.j2ee:jndiName=local/UpdateStartupConfig,service=EJB
                                jboss.j2ee:jndiName=local/PrepositionRelease,service=EJB
                                jboss.j2ee:jndiName=local/Upgrade,service=EJB
                                jboss.j2ee:jndiName=local/ExecuteMacro,service=EJB
                                jboss.j2ee:jndiName=local/CaptureConfig,service=EJB
                                jboss.j2ee:jndiName=local/TemplateAction,service=EJB
                                jboss.j2ee:jndiName=local/Sleep,service=EJB
                                jboss.j2ee:jndiName=local/WaitForReboot,service=EJB
                                jboss.j2ee:jndiName=local/BroadcastMessage,service=EJB

                                any ideas why, what am I missing here?

                                • 13. Re: MDB's, DataSource in a cluster
                                  mikeg123

                                  btw here is snippet from jboss-service.xml

                                  <message-driven>
                                  <ejb-name>SessionCredentialFlush</ejb-name>
                                  <destination-jndi-name>topic/UserManagerEventTopic</destination- jndi-name>
                                  jboss.mq.destination:service=Topic,name=UserManagerEventT
                                  opic
                                  </message-driven>