[prev in list] [next in list] [prev in thread] [next in thread]
List: activemq-dev
Subject: [jira] [Created] (AMQ-3256) For a Master Slave failover broker
From: "andy boot (JIRA)" <jira () apache ! org>
Date: 2011-03-31 15:36:06
Message-ID: 1705410597.24614.1301585766721.JavaMail.tomcat () hel ! zones ! apache ! org
[Download RAW message or body]
For a Master Slave failover broker setup. The system does not reconnect to the broker \
if the brokers are restarted
------------------------------------------------------------------------------------------------------------------
Key: AMQ-3256
URL: https://issues.apache.org/jira/browse/AMQ-3256
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.4.2
Environment: Windows XP
Reporter: andy boot
Start a Master & Slave broker.
Connect to them with failover=true and randomize=false
Message Sending - ok.
Kill the Master broker.
Message Sending - ok.
Kill the Slave broker.
Message Sending - paused (both brokers are down)
Restart both brokers.
Message Sending - fail.
The above WORKS in ActiveMQ 5.3.1 but fails in 5.4.2
I wonder if this is related to: https://issues.apache.org/jira/browse/AMQ-3213
Steps to reproduce the problem:
* Run Broker, BrokerSlave, Client, Server,
* Note messages being sent from Server to Client
* Kill Broker
* Note messages being sent from Server to Client
* Kill BrokerSlave
* Restart Broker & BrokerSlave,
* Messages no longer being sent.
{code:title=Broker.java|borderStyle=solid}
public class Broker {
public static void main(String[] args) throws Exception {
BrokerService broker;
broker = BrokerFactory.createBroker("xbean:master.xml");
broker.start();
while(true) {
Thread.sleep(10*1000);
}
}
}
{code}
{code:title=BrokerSlave.java|borderStyle=solid}
public class BrokerSlave {
public static void main(String[] args) throws Exception {
BrokerService broker;
broker = BrokerFactory.createBroker("xbean:slave.xml");
broker.start();
while(true) {
Thread.sleep(10*1000);
}
}
}
{code}
{code:title=Client.java|borderStyle=solid}
public class Client {
static String url = \
"failover://(tcp://localhost:61616,tcp://localhost:61617)?randomize=false"; static \
String user = null; static String password = null;
public static void main(String[] args) throws JMSException, InterruptedException \
{
ActiveMQConnectionFactory connectionFactory = new \
ActiveMQConnectionFactory(user, password, url);
final Connection connection = connectionFactory.createConnection();
final Session session = connection.createSession(false, \
Session.AUTO_ACKNOWLEDGE); final Queue orderQueue = \
session.createQueue("VendorOrderQueue");
final MessageConsumer consumer = session.createConsumer(orderQueue);
consumer.setMessageListener(new MsgL() );
session.run();
connection.start();
while(true) {
Thread.sleep(5000);
}
}
private static class MsgL implements MessageListener {
public void onMessage(final Message message) {
System.out.println("Got message: "+message);
}
}
}
{code}
{code:title=Server.java|borderStyle=solid}
public class Server {
static String url = \
"failover://(tcp://localhost:61616,tcp://localhost:61617)?randomize=false"; static \
String user = null; static String password = null;
public static void main(String[] args) throws JMSException, InterruptedException \
{
ActiveMQConnectionFactory connectionFactory = new \
ActiveMQConnectionFactory(user, password, url);
final Connection connection = connectionFactory.createConnection();
final Session session = connection.createSession(false, \
Session.AUTO_ACKNOWLEDGE); final Queue orderQueue = \
session.createQueue("VendorOrderQueue");
final MessageProducer producer = session.createProducer(orderQueue);
session.run();
connection.start();
for (int i = 0; i < 100; i++) {
MapMessage message = session.createMapMessage();
message.setString("Item", "hello "+i);
System.out.println("Sending: "+message);
producer.send(message);
System.out.println("Wait for 5s");
Thread.sleep(5000);
}
}
}
{code}
{code:title=master.xml|borderStyle=solid}
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core \
http://activemq.apache.org/schema/core/activemq-core.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
<broker xmlns="http://activemq.apache.org/schema/core"
persistent="false"
waitForSlave="true"
useJmx="true">
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
</broker>
</beans>
{code}
{code:title=slave.xml|borderStyle=solid}
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core \
http://activemq.apache.org/schema/core/activemq-core.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
<broker xmlns="http://activemq.apache.org/schema/core"
persistent="false"
useJmx="false"
shutdownOnMasterFailure="false">
<services>
<masterConnector remoteURI="tcp://localhost:61616"/>
</services>
<transportConnectors>
<transportConnector uri="tcp://localhost:61617"/>
</transportConnectors>
</broker>
</beans>
{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic