-
Enhancement
-
Resolution: Duplicate
-
Critical
-
None
-
10.1.0.Final
-
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
- is related to
-
JBEAP-3510 Documentation: Document behavior of rebalancing of inbound connections in HA scenario
-
- Closed
-