You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by pompanoSlayer <mo...@gmail.com> on 2016/06/08 14:45:59 UTC
failover protocol not reconnecting to single boker
From what I read, I would only need to add failover:(tcp://localhost:61616)
as the connection url for the broker and activeMQ does all the reconnecting
for me. However I can't seem to get this right. The program waits for the
broker to go online and is able to read messages out of the queue when
there's one. When I stop the broker, the program just exits.
Here's my test program.
QueueConnectionFactory queueConnectionFactory;
QueueConnection queueConnection;
QueueSession queueSession;
QueueReceiver queueReceiver;
Queue queue;
ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory("failover:(tcp://localhost:61616)");
// Create a Connection
queueConnection = connectionFactory.createQueueConnection();
queueSession = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
queue = queueSession.createQueue("testUpdate");
queueReceiver = queueSession.createReceiver(queue);
queueReceiver.setMessageListener(
message ->{
try {
if(message != null) {
String msgText = null;
if (message instanceof TextMessage) {
msgText = ((TextMessage) message).getText();
} else {
msgText = message.toString();
System.out.println("message is of type " +
message.getClass());
}
System.out.println("Message Received: " + msgText);
}
} catch (JMSException jmse) {
System.err.println("An exception occurred: " +
jmse.getMessage());
}
}
);
queueConnection.start();
I am not sure what I am missing or the failover protocol is not what I am
expecting it to do.
--
View this message in context: http://activemq.2283324.n4.nabble.com/failover-protocol-not-reconnecting-to-single-boker-tp4712783.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: failover protocol not reconnecting to single boker
Posted by pompanoSlayer <mo...@gmail.com>.
Ah, so the thread that come with failover protocol to reconnecting to the
broker is non-daemon. So I need to come up with a logic to keep the JVM
open.
Got it!
Thanks!
--
View this message in context: http://activemq.2283324.n4.nabble.com/failover-protocol-not-reconnecting-to-single-boker-tp4712783p4712786.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: failover protocol not reconnecting to single boker
Posted by Timothy Bish <ta...@gmail.com>.
On 06/08/2016 10:45 AM, pompanoSlayer wrote:
> >From what I read, I would only need to add failover:(tcp://localhost:61616)
> as the connection url for the broker and activeMQ does all the reconnecting
> for me. However I can't seem to get this right. The program waits for the
> broker to go online and is able to read messages out of the queue when
> there's one. When I stop the broker, the program just exits.
>
> Here's my test program.
>
> QueueConnectionFactory queueConnectionFactory;
> QueueConnection queueConnection;
> QueueSession queueSession;
> QueueReceiver queueReceiver;
> Queue queue;
>
> ActiveMQConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory("failover:(tcp://localhost:61616)");
>
> // Create a Connection
> queueConnection = connectionFactory.createQueueConnection();
> queueSession = queueConnection.createQueueSession(false,
> Session.AUTO_ACKNOWLEDGE);
> queue = queueSession.createQueue("testUpdate");
> queueReceiver = queueSession.createReceiver(queue);
>
> queueReceiver.setMessageListener(
> message ->{
> try {
> if(message != null) {
> String msgText = null;
> if (message instanceof TextMessage) {
> msgText = ((TextMessage) message).getText();
> } else {
> msgText = message.toString();
> System.out.println("message is of type " +
> message.getClass());
> }
> System.out.println("Message Received: " + msgText);
> }
> } catch (JMSException jmse) {
> System.err.println("An exception occurred: " +
> jmse.getMessage());
> }
> }
> );
> queueConnection.start();
>
>
> I am not sure what I am missing or the failover protocol is not what I am
> expecting it to do.
>
>
>
> --
> View this message in context: http://activemq.2283324.n4.nabble.com/failover-protocol-not-reconnecting-to-single-boker-tp4712783.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
What is keeping your program alive? Are you simply relying on the fact
that there is at least one non-daemon thread running (bad idea) or do
you have some control logic to ensure it stays alive?
--
Tim Bish
twitter: @tabish121
blog: http://timbish.blogspot.com/