Failover with Shared Store not working when Live Server killed
bpogace Oct 26, 2017 8:17 AMDear all,
I am doing some tests to failover 2 servers (live-backup, Wildfly 10.1.0) that have a shared file system on a development environment. The simple test is the following:
- Access the application on live server to produce/consume JMS messages for a queue
- Shutdown or Kill Live server
- Access the application on backup server to check number of messages in queue
The problem is that if I shutdown the Live server I can see a correct number of messages when accessing on backup. But, if I kill (sudo kill -9) the Live server all messages that were just produced/consumed are not updated for Backup server. Reading the documentation this is one of the main disadvantages of a Data Replication which is why I have configured a Shared Store solution.
The following is the Live server configuration for messaging:
<subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0"> <server name="default"> <security enabled="false"/> <cluster user="$jboss.messaging.cluster.user:userjms" password="$jboss.messaging.cluster.password:secret"/> <shared-store-master failover-on-server-shutdown="true"/> <bindings-directory path="/shared/sharedstore/bindings"/> <journal-directory path="/shared/sharedstore/journal"/> <large-messages-directory path="/shared/sharedstore/largemessages"/> <paging-directory path="/shared/sharedstore/paging"/> <security-setting name="#"> <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/> <role name="jms" send="true" consume="true"/> </security-setting> <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10" redistribution-delay="0"/> <remote-connector name="netty" socket-binding="messaging"/> <remote-connector name="netty-throughput" socket-binding="messaging-throughput"> <param name="batch-delay" value="50"/> </remote-connector> <in-vm-connector name="in-vm" server-id="0"/> <remote-acceptor name="netty" socket-binding="messaging"/> <remote-acceptor name="netty-throughput" socket-binding="messaging-throughput"> <param name="batch-delay" value="50"/> <param name="direct-deliver" value="false"/> </remote-acceptor> <in-vm-acceptor name="in-vm" server-id="0"/> <broadcast-group name="bg-group1" jgroups-channel="activemq-cluster" connectors="netty"/> <discovery-group name="dg-group1" jgroups-channel="activemq-cluster" refresh-timeout="1000"/> <cluster-connection name="my-cluster" address="jms" connector-name="netty" discovery-group="dg-group1"/> <jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/> <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/> <jms-queue name="RunCommandQueue" entries="java:/jms/RunCommandQueue java:jboss/exported/jms/RunCommandQueue"/> <jms-queue name="ServiceCommandQueue" entries="java:/jms/ServiceCommandQueue java:jboss/exported/jms/ServiceCommandQueue"/> <jms-queue name="EventQueue" entries="java:/jms/EventQueue java:jboss/exported/jms/EventQueue"/> <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/> <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="netty" block-on-acknowledge="true" reconnect-attempts="-1"/> <connection-factory name="EM2Factory" entries="java:/jms/EM2Factory" connectors="in-vm netty" ha="true"/> <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="netty" ha="true" reconnect-attempts="-1" transaction="xa"/> </server>
Please check for any missing configuration. Looking forward to having your feedback on this.
Thank you and best regards