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.

Reply via email to