【发布时间】:2012-01-15 17:17:56
【问题描述】:
我目前正在使用 activemq 故障转移 uir 客户端重新连接到代理,我也没有
希望在断开连接时阻止“发送”操作,所以我使用 URI likefailover:(tcp://192.168.193.177:61616)?timeout=1,而问题是如果我第一次无法连接,连接将超时并且重新连接不起作用,我得到的例外:
2011 年 12 月 7 日下午 3:39:28 org.apache.activemq.transport.failover.FailoverTransport oneway 信息:故障转移在 2 毫秒后超时 2011 年 12 月 7 日下午 3: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.RawDataParser.run(RawDataParser.java:110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
我以为超时参数只对发送操作有效,不影响重连,但是第一次连接呢?
编辑:如果java客户端第一次成功连接到代理,那么如果连接断开,发送操作将在连接未建立时超时,java客户端将重新连接到代理,这就是我预期的。 而如果Java客户端第一次无法成功连接到代理,连接将超时,直到成功才尝试重新连接,这是我意想不到的,我是不是有些地方错了?
编辑:Activemq 版本:5.3.0
编辑:抱歉,URI 是有效的,这是我的错误,我被另一个异常弄糊涂了
有什么想法吗?
谢谢
ps:这是我第一次上 Stackoverflow,如有不合常规的行为,请纠正它
【问题讨论】: