You want your client to first attempt to connect to the master (macserver). So turn off randomization like this and see if your results are any different.
failover:(tcp://macserver:61616,tcp://localhost:61616)?randomize=false&initialReconnectDelay=100 The documentation on the web site states the following, "Whilst a Slave is actively connected to the Master - it does not allow or start any network or transport connectors, it's sole purpose is to duplicate the state of the master." So if your client has randomization turned on (default) and it just so happens to try and connect to the slave first, that connect attempt should fail and it will then try the master. However, I am seeing different in my tests. The client - producer in my case - successfully connects to the slave. Joe www.ttmsolutions.com alvinj wrote: > > I'm trying to create a Pure Master Slave configuration using AMQ 4.1.1 and > a slightly stripped down version of the default configuration files. (I > originally tried with AMQ 5.0.0 but had too many problems, so I dropped > back a release.) After the Master and Slave seem to start up okay, the > system doesn't work properly when I send messages using the default > Producer application with this failover URL in the build.xml file: > > <property name="url" > value="failover:(tcp://macserver:61616,tcp://localhost:61616)?initialReconnectDelay=100" > /> > > In that line, "macserver" is the name of the Master server (a Mac OS X > system) and localhost is my Slave system (Windows XP). > > Once I type > > ant producer > > with this configuration, the Master system throws this exception for each > message that is sent: > > 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:54) > 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:506) > at > org.apache.activemq.command.MessageAck.visit(MessageAck.java:179) > at > org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294) > at > org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185) > 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) > > When I use the "browse" command the Master does show that my messages are > in the queue, but when I check the Slave it has no messages. The Slave > system also does not throw any exceptions. It just shows this message: > > Loading message broker from: xbean:activemq.xml > INFO BrokerService - ActiveMQ 4.1.1 JMS Message Broker > (localhost) 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: > C:\Work\PureMasterSlave\Slave-411\activemq-data\journal > INFO JournalPersistenceAdapter - Journal Recovered: 0 message(s) in > transactions recovered. > INFO TransportServerThreadSupport - Listening for connections at: > tcp://winxp911:61616 > INFO TransportConnector - Connector openwire Started > INFO TransportServerThreadSupport - Listening for connections at: > stomp://winxp911:61613 > INFO TransportConnector - Connector stomp Started > INFO TransportConnector - Connector vm://localhost Started > INFO MasterConnector - Starting a network connection > between vm://localhost#0 and tcp://null:0 has been established. > INFO BrokerService - ActiveMQ JMS Message Broker > (localhost, ID:winxp911-1560-1203001783263-2:0) started > INFO MasterConnector - Slave connection between > vm://localhost#0 and tcp://macserver/172.30.28.88:61616 has been > established. > > The Master continues to save new messages to my queue, but throws that > same exception for each new message added. > > Here are my activemq.xml configuration files: > > MASTER > ------ > > <beans> > > <!-- Allows us to use system properties as variables in this > configuration file --> > <bean > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> > > <broker brokerName="localhost" useJmx="true" > xmlns="http://activemq.org/config/1.0"> > > <persistenceAdapter> > <journaledJDBC journalLogFiles="5" > dataDirectory="${activemq.base}/activemq-data"/> > </persistenceAdapter> > > <transportConnectors> > <transportConnector name="openwire" uri="tcp://localhost:61616" > discoveryUri="multicast://default"/> > <transportConnector name="ssl" uri="ssl://localhost:61617"/> > <transportConnector name="stomp" uri="stomp://localhost:61613"/> > </transportConnectors> > > </broker> > > </beans> > > > SLAVE > ----- > > <beans> > > <!-- Allows us to use system properties as variables in this > configuration file --> > <bean > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> > > <broker brokerName="localhost" xmlns="http://activemq.org/config/1.0" > masterConnectorURI="tcp://macserver:61616" > shutdownOnMasterFailure="false"> > > <persistenceAdapter> > <journaledJDBC journalLogFiles="5" > dataDirectory="${activemq.base}/activemq-data"/> > </persistenceAdapter> > > <transportConnectors> > <transportConnector name="openwire" uri="tcp://localhost:61616" > discoveryUri="multicast://default"/> > <transportConnector name="stomp" uri="stomp://localhost:61613"/> > </transportConnectors> > > </broker> > > </beans> > > Finally, I've totally dropped the firewalls on both systems, and the Mac > (Master) is using Java 1.5.0_07, and the Windows system (Slave) is using > 1.6.0_04. > > I'd appreciate it if anyone can help troubleshoot this problem. I haven't > changed much from the default values, and looking at the docs on the site > I think I'm doing everything right, but it's not working. > > > -- View this message in context: http://www.nabble.com/Pure-Master-Slave-not-working-tp15481240s2354p15488981.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.