2011-12-08 72 views
1

我目前正在使用activemq故障切换uir客户端重新连接到代理,我也不要 想要“发送”操作被阻断时,它断开,所以我我使用URI像failover:(tcp://192.168.193.177:61616)?timeout=1,而问题是,如果我不能得到首次连接,连接将超时并重新连接不工作,我得到了异常:使用activemq故障切换URI重新连接,而第一次连接超时

2011年12月7日3:39:28 PM org.apache.activemq.transport.failover.FailoverTransport oneway 信息:故障转移超时后2ms 2011年12月7日下午3时39分28秒org.apache.activemq.transport.failover.FailoverTransport doRec onnect 信息:已成功连接到tcp://127.0.0.1:61616 线程“pool-1-thread-2”中的异常java.lang.NullPointerException at 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) at java.util.concurrent.ThreadP oolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886) 在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:908)

我认为超时参数仅适用于发送操作,而不干扰重新连接,但第一次连接?

编辑:如果java客户端第一次连接到代理成功,那么如果连接断开连接,发送操作将超时连接不建立,并且java客户端将重新连接到代理,那我什么我预计。 而如果Java客户端无法第一次成功连接到代理,连接将超时,不会尝试重新连接,直到成功,这是我意想不到的,我有些地方是错的?

编辑:ActiveMQ的版本:5.3.0

编辑:对不起,URI是有效的,这是我的错,我被另一个异常

任何想法困惑?

感谢

PS:这是我第一次#2,任何非常规behalve,请纠正

回答

0

你的URI似乎有效。你能解释一下,“重新连接不起作用”是什么意思?可能是指数回退增加太多,你认为它不会重新连接?

您可以禁用它,然后再试一次:

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

请包括位客户端的日志,我们可以得到,为什么重新连接不工作的更多信息。 什么是您使用的ActiveMQ客户端? Java的? C++? C#?

+0

嘿Srodriguez,如果java客户端可以第一次获得连接,一切都是预期的,如果没有,客户端将不会尝试重新连接到代理,并获得异常说“”2ms后故障转移超时“ – Cruis