использование переадресации URI-адреса activemq для повторного подключения, а время ожидания при первом подключении - PullRequest
1 голос
/ 08 декабря 2011

В настоящее время я использую activemq failover uir для переподключения клиента к брокеру, и я также не хочу, чтобы операция «send» блокировалась при его отключении, поэтому я использую URI, например failover:(tcp://192.168.193.177:61616)?timeout=1, но проблема заключается в том, чтоЯ не могу установить соединение в первый раз, время соединения истекает, а переподключение не работает, исключение, которое я получил:

7 декабря 2011 15:39:28 org.apache.activemq.transport.failover.FailoverTransport односторонняя ИНФОРМАЦИЯ: Тайм-аут аварийного переключения истек после 2 мс. 7 декабря 2011 г. 15:39:28 org.apache.activemq.transport.failover.FailoverTransport doReconnect INFO: Успешно подключено к tcp: //127.0.0.1: 61616 Исключение в потоке "pool-1-thread-2" java.lang.NullPointerException на com.cicc.mdf.dataserver.messaging.JMSMessagePublisher.publish (JMSMessagePublisher.java:197) на com.cicc.mdf.dataserver.messaging.JMSMessagePublisher.publishRealTimeData (JMSMessagePublisher.java:270) в com.cicc.mdf.dataserver.service.MarketDataService.process (MarketDataService.java:984) в com.cicc.mdf.message.parser.BroadcastMessageParser.parseElement (BroadcastMessageParser.java:219) по адресу com.cicc.mdf.connectivity.RawDataParser.slice (RawDataParser.java:433) по адресу com.cicc.mdf.connectivity.RunDRawDataParser.java:110) на java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (ThreadPoolExecutor.java:886) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java5: 1005)

Я думал, что параметр тайм-аута работает только на операции отправки, не мешая повторному подключению, но при первом подключении?

РЕДАКТИРОВАТЬ: если клиент java впервые подключился к брокеру, то если подключение было разорвано, операция отправки будет тайм-аут, когда соединение не будет установлено, и Java-клиент переподключится к брокеру, что я и ожидал.в то время как java-клиент не может успешно подключиться к брокеру в первый раз, время соединения истекает, не пытаясь переподключиться до тех пор, пока не произойдет что-то неожиданное, я ошибаюсь?

РЕДАКТИРОВАТЬ: Activemq версия: 5.3.0

РЕДАКТИРОВАТЬ: Извините, URI действителен, это моя ошибка, меня смутило еще одно исключение

Есть идеи?

Спасибо

ps: я впервые на Stackoverflow, любой нетрадиционный бехальве, пожалуйста, исправьте его

1 Ответ

0 голосов
/ 08 декабря 2011

Ваш URI кажется действительным.Можете ли вы объяснить, что вы подразумеваете под "переподключение не работает"?Может ли быть так, что экспоненциальный откат увеличивается настолько, что вы думаете, что он не воссоединяется?

Вы можете отключить его и повторить попытку:

failover:(tcp://localhost:61616)?useExponentialBackOff=false

Пожалуйста, включите немного журналов вашегоклиент, мы можем получить больше информации о том, почему переподключение не работает.Какой клиент ActiveMQ вы используете?Джава?C ++?C #

...