5 Replies Latest reply on Nov 2, 2008 9:27 PM by chuaky

    ESB 4.4 JMS Failover

    chuaky

      hi,

      Hope some1 can help with this query. I use ESB 4.4 and setup HA-JMS from guides from these websites:

      http://wiki.metawerx.net/wiki/HowDoIClusterJBoss
      http://docs.jboss.com/jbossas/guides/clusteringguide/r2/en/html_single/

      I started up 2 servers: 1 master and 1 slave.

      When i shut down the master, the slave got this error and seems to be a unsuccessful failover.

      Please help to advise on what went wrong.
      Thanks.

      2008-10-23 19:50:59,937 DEBUG [org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool] Creating a JMS Connection for poolKey : {connection-factory=ConnectionFactory}
      2008-10-23 19:50:59,937 INFO [org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool] Received NamingException, refreshing context.
      2008-10-23 19:50:59,953 DEBUG [org.jboss.soa.esb.listeners.config.JBoss4ESBDeployment] Starting failed jboss.esb:deployment=Quickstart_helloworld.esb
      org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException: Unexpected configuration exception from prepareMessageReceiver
       at org.jboss.soa.esb.listeners.gateway.JmsGatewayListener.doInitialise(JmsGatewayListener.java:121)
       at org.jboss.soa.esb.listeners.lifecycle.AbstractManagedLifecycle.initialise(AbstractManagedLifecycle.java:133)
       at org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController.initialiseInstances(ManagedLifecycleController.java:150)
       at org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController.start(ManagedLifecycleController.java:69)
       at org.jboss.soa.esb.listeners.config.JBoss4ESBDeployment.startService(JBoss4ESBDeployment.java:83)
       at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
       at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
       at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
       at $Proxy0.start(Unknown Source)
       at org.jboss.system.ServiceController.start(ServiceController.java:417)
       at org.jboss.system.ServiceController.start(ServiceController.java:435)
       at org.jboss.system.ServiceController.start(ServiceController.java:435)
       at org.jboss.system.ServiceController.start(ServiceController.java:435)
       at org.jboss.system.ServiceController.start(ServiceController.java:435)
       at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
       at $Proxy4.start(Unknown Source)
       at org.jboss.deployment.SARDeployer.start(SARDeployer.java:304)
       at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
       at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)
       at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
       at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
       at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
       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.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
       at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       at org.jboss.ha.singleton.HASingletonController.invokeSingletonMBeanMethod(HASingletonController.java:207)
       at org.jboss.ha.singleton.HASingletonController.startSingleton(HASingletonController.java:144)
       at org.jboss.ha.singleton.HASingletonSupport.startNewMaster(HASingletonSupport.java:272)
       at org.jboss.ha.singleton.HASingletonSupport.makeThisNodeMaster(HASingletonSupport.java:254)
       at org.jboss.ha.singleton.HASingletonSupport.partitionTopologyChanged(HASingletonSupport.java:196)
       at org.jboss.ha.jmx.HAServiceMBeanSupport$1.replicantsChanged(HAServiceMBeanSupport.java:247)
       at org.jboss.ha.framework.server.DistributedReplicantManagerImpl.notifyKeyListeners(DistributedReplicantManagerImpl.java:846)
       at org.jboss.ha.framework.server.DistributedReplicantManagerImpl.processEvent(DistributedReplicantManagerImpl.java:387)
       at org.jboss.ha.framework.server.AsynchEventHandler.run(AsynchEventHandler.java:107)
       at java.lang.Thread.run(Thread.java:595)
      Caused by: org.jboss.soa.esb.ConfigurationException: Failed to obtain queue session from pool
       at org.jboss.soa.esb.listeners.gateway.JmsGatewayListener.prepareMessageReceiver(JmsGatewayListener.java:413)
       at org.jboss.soa.esb.listeners.gateway.JmsGatewayListener.doInitialise(JmsGatewayListener.java:109)
       ... 59 more
      Caused by: javax.naming.NameNotFoundException: ConnectionFactory not bound
       at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
       at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
       at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
       at org.jnp.server.NamingServer.lookup(NamingServer.java:296)
       at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
       at sun.rmi.transport.Transport$1.run(Transport.java:153)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
       at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
       at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
       at java.lang.Thread.run(Thread.java:595)
       at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
       at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
       at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
       at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
       at javax.naming.InitialContext.lookup(InitialContext.java:351)
       at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.initConnection(JmsConnectionPool.java:509)
       at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getSession(JmsConnectionPool.java:214)
       at org.jboss.soa.esb.listeners.gateway.JmsGatewayListener.prepareMessageReceiver(JmsGatewayListener.java:408)
       ... 60 more
      


        • 1. Re: ESB 4.4 JMS Failover
          noelo

          Both of those pages are only relevant to the older JBoss MQ messaging. JBoss ESB uses Jboss Messaging (JBM).

          I'd look at the JBM documentation, in particular clustering/HA and configure the ESB that way.

          • 2. Re: ESB 4.4 JMS Failover
            chuaky

            hi noelo,

            Saw the installation steps for new jboss messaging, would try out.
            Many thanks for the advice.

            • 3. Re: ESB 4.4 JMS Failover
              chuaky

              hi noelo,

              I think i would use HA-JNDI to do simple clustering because i am a novice in this clustering. I would also think it may be better to wait for JBoss Messaging to replaced MQ, in JBoss 5.0, then i have less issues.

              So, this is what i would do in my project (just to share with you):


              A legacy client (with HA-JNDI java client) ---> Jboss ESB ---> Postgresql

              User Web Browser ---> Jboss Portal/Seam/RichFaces ---> Postgresql

              If necessary, Jboss Seam ---> Jboss ESB (via JMS)

              Postgresql would be replicated with Slony.


              All servers running on CentOS 5.2


              Thanks again for advising on this issue, when i needed help.

              • 4. Re: ESB 4.4 JMS Failover
                noelo

                No worries, FYI Jboss Messaging (JBM) has already replaced JBMQ in EAP 4.3 so you don't have to wait until 5.0

                • 5. Re: ESB 4.4 JMS Failover
                  chuaky

                  Thanks Noelo, saw the EAP 4.3 has the newer JBoss Messaging


                  http://www.jboss.com/products/platforms/application/components


                  Previously, I was looking at the latest Jboss community release 4.2.3.GA, which still using the older JBossMQ.

                  Best regards.