Scenario: ========== 1)Start the Master and Slave server 2) Start the Subscriber Application which is subscribing to topic T 3) Start the Publisher Application which publishing to topic T 4) Now the Subscriber Application is able to receive the messages published to topic T. Also,a slave fail error is caught while receiving message from master broker on a master slave configuration. 5) Stop the Master server 6) Publisher is able to reconnect and start publishing to topic T. 7) But the Subscriber is not able to recieve the messages.
In both Subscriber/Publisher Application the url used for obtaining the ActiveMQ ConnectionFactory is as listed below: url: failover://(tcp://localhost:61616,tcp://localhost:61617)?randomize=false Master Configuration ================== <beans> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> <broker brokerName="master" useJmx="true" xmlns="http://activemq.org/config/1.0"> <persistenceAdapter> <journaledJDBC journalLogFiles="5" dataDirectory="${activemq.base}/data/broker" /> </persistenceAdapter> <transportConnectors> <transportConnector uri="tcp://localhost:61616" discoveryUri="multicast://default" /> </transportConnectors> <networkConnectors> <networkConnector uri="multicast://default?initialReconnectDelay=100" /> <!--networkConnector uri="static://(tcp://localhost:61616)" /--> </networkConnectors> </broker> </beans> Slave Configuration ================== <beans> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> <broker brokerName="slave" masterConnectorURI="tcp://localhost:61616" shutdownOnMasterFailure="false" useJmx="true" xmlns="http://activemq.org/config/1.0"> <persistenceAdapter> <journaledJDBC journalLogFiles="5" dataDirectory="${activemq.base}/data/slavebroker" /> </persistenceAdapter> <transportConnectors> <transportConnector uri="tcp://localhost:61617"/> </transportConnectors> </broker> </beans> Master Log: ========== INFO BrokerService - ActiveMQ 4.1.1 JMS Message Broker (brokerOne) is starting INFO BrokerService - For help or more information please see:http://incubator.apache.org/activemq/ INFO ManagementContext - JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi INFO JDBCPersistenceAdapter - Database driver recognized: [apache_derby_embedded_jdbc_driver] INFO DefaultDatabaseLocker - Attempting to acquire the exclusive lock to become the Master broker INFO DefaultDatabaseLocker - Becoming the master on dataSource: [EMAIL PROTECTED] INFO JournalPersistenceAdapter - Journal Recovery Started from: Active Journal: using 5 x 20.0 Megs at: D:\apache-activemq-4.1.1\data\broker\journal INFO JournalPersistenceAdapter - Journal Recovered: 0 message(s) in transactions recovered. INFO TransportServerThreadSupport - Listening for connections at: tcp://DDP4345:61616 INFO TransportConnector - Connector tcp://localhost:61616 Started INFO NetworkConnector - Network Connector bridge Started INFO BrokerService - ActiveMQ JMS Message Broker (brokerOne, ID:DDP4345-2289-1177510211668-1:0) started After the Slave server is up: ----------------------------- INFO TransportConnection - Slave Broker slave is attached The slave fail error is caught while receiving message from master broker on a master slave configuration is as follows: --------------------------------------------------------------------------------------------------------------------------------- ERROR MasterBroker - Slave Failed java.lang.AssertionError: Unsupported Method at org.apache.activemq.transport.TransportSupport.request(TransportSupport.java:71) at org.apache.activemq.transport.TransportFilter.request(TransportFilter.java:88) at org.apache.activemq.transport.TransportFilter.request(TransportFilter.java:88) at org.apache.activemq.transport.MutexTransport.request(MutexTransport.java:49) at org.apache.activemq.broker.ft.MasterBroker.sendSyncToSlave(MasterBroker.java:363) at org.apache.activemq.broker.ft.MasterBroker.sendToSlave(MasterBroker.java:345) at org.apache.activemq.broker.ft.MasterBroker.acknowledge(MasterBroker.java:320) at org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:88) at org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:488) at org.apache.activemq.command.MessageAck.visit(MessageAck.java:179) at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:284) at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:177) at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133) at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137) at java.lang.Thread.run(Thread.java:613) ERROR MasterBroker - Slave Failed Slave Log: ========== The slave log looks like: INFO BrokerService - ActiveMQ 4.1.1 JMS Message Broker (slave) is starting INFO BrokerService - For help or more information please see:http://incubator.apache.org/activemq/ WARN ManagementContext - Failed to start jmx connector: Cannot bind to URL [rmi://localhost:1099/jmxrmi]: javax.naming.NameAlreadyBoundException: jmxrmi [Root exception is java.rmi.AlreadyBoundException: jmxrmi] INFO JDBCPersistenceAdapter - Database driver recognized: [apache_derby_embedded_jdbc_driver] INFO DefaultDatabaseLocker - Attempting to acquire the exclusive lock to become the Master broker INFO DefaultDatabaseLocker - Becoming the master on dataSource: [EMAIL PROTECTED] INFO JournalPersistenceAdapter - Journal Recovery Started from: Active Journal: using 5 x 20.0 Megs at: D:\apache-activemq-4.1.1\data\slavebroker\journal INFO JournalPersistenceAdapter - Journal Recovered: 0 message(s) in transactions recovered. INFO TransportServerThreadSupport - Listening for connections at: tcp://DDP4345:61617 INFO TransportConnector - Connector tcp://localhost:61617 Started INFO TransportConnector - Connector vm://slave Started INFO MasterConnector - Starting a network connection between vm://slave#0 and tcp://null:0 has been established. INFO BrokerService - ActiveMQ JMS Message Broker (slave, ID:DDP4345-2492-1177510494965-2:0) started INFO MasterConnector - Slave connection between vm://slave#0 and tcp://DDP4345/192.168.51.19:61616 has been established. Version: apache-activemq-4.1.1 Summary: I am facing the same issue as mentioned in the below url: https://issues.apache.org/activemq/browse/AMQ-1079 https://issues.apache.org/activemq/browse/AMQ-1079 I need to provide Fault Tolerence using ActiveMQ. Pls help/suggest your views how to provide Fault Tolerence to an application using ActiveMQ. Thanks in advance.. -- View this message in context: http://www.nabble.com/Failover-using-Master-Slave-Configuration%28Slave-Fail-Error-when-Receiving-message-on-a-MasterSlave-configuration%29-tf3645679s2354.html#a10181812 Sent from the ActiveMQ - User mailing list archive at Nabble.com.