Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-7615

Inbound connection rebalancing does not allow failover to backup

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Duplicate
    • Icon: Critical Critical
    • None
    • 10.1.0.Final
    • JMS
    • None

      If MDB contains activation config property:
      @ActivationConfigProperty(propertyName = "rebalanceConnections", propertyValue = "true")

      so rebalancing of inbound connections is enabled then MDB is not able to failover from live to backup if backup is cleanly shutdowned (ctrl-c).

      Test scenario:

      • There are 3 EAP 7 servers. 1st has Artemis configured as live and 2nd has Artemis configured as backup server. So servers are in dedicated HA topology with replicated journal. Then there are queues InQueue and OutQueue deployed to live and backup.
      • Start live and backup and then send 2000 messages to InQueue to live server.
      • Start 3rd server which has configured Artemis RA to connect to live server. HA is enabled.
      • Deploy MDB on 3rd server. MDB consumes messages from InQueue and sends to OutQueue in XA transaction.
      • When MDB is processing messages cleanly shutdown live server.
      • MDB should failover to backup and process all the messages
      • Receive messages from OutQueue from backup server and check that all messages were received.

      Test fails bacause MDB is not able to failover to backup.

      Server 3 with MDB is logging:

      15:16:02,975 ERROR [org.apache.activemq.artemis.ra] (NodeDOWN Connection Rebalancer) AMQ154003: Unable to reconnect org.apache.activemq.artemis.ra.inflow.ActiveMQActivationSpec(ra=org.apache.activemq.artemis.ra.ActiveMQResourceAdapter@51f82f98 destination=jms/queue/InQueue destinationType=javax.jms.Queue ack=Auto-acknowledge durable=false clientID=null user=null maxSession=15): ActiveMQNotConnectedException[errorType=NOT_CONNECTED message=AMQ119007: Cannot connect to server(s). Tried with all available servers.]
      	at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:777) [artemis-core-client-1.1.0.redhat-5.jar:1.1.0.redhat-5]
      	at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.setup(ActiveMQActivation.java:315)
      	at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation.reconnect(ActiveMQActivation.java:678)
      	at org.apache.activemq.artemis.ra.inflow.ActiveMQActivation$2.run(ActiveMQActivation.java:627)
      	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_51]
      

      If rebalanceConnections=false then test passes.

      How to run the test locally:

      git clone git://git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git
      cd eap-tests-hornetq/scripts/
      git checkout refactoring_modules
      groovy -DEAP_VERSION=7.0.0.ER4  PrepareServers7.groovy
      export WORKSPACE=$PWD
      export JBOSS_HOME_1=$WORKSPACE/server1/jboss-eap
      export JBOSS_HOME_2=$WORKSPACE/server2/jboss-eap
      export JBOSS_HOME_3=$WORKSPACE/server3/jboss-eap
      export JBOSS_HOME_4=$WORKSPACE/server4/jboss-eap
      cd ../jboss-hornetq-testsuite/
      mvn clean test -Dtest=ReplicatedDedicatedFailoverTestWithMdb#testShutdown  -DfailIfNoTests=false  -Deap=7x  | tee log
      

              rhn-support-jbertram Justin Bertram
              mnovak1@redhat.com Miroslav Novak
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: