java - 使用 activemq 故障转移 URI 重新连接,而首次连接超时

标签 java activemq failover

我目前正在使用 activemq 故障转移 uir 来让客户端重新连接到代理,而且我也不这样做 希望“发送”操作在断开连接时被阻止,所以我使用像 failover:(tcp://192.168.193.177:61616)?timeout=1 这样的 URI,而问题是我是否可以第一次连接不上,连接超时,重新连接也不行,我得到的异常是:

Dec 7, 2011 3:39:28 PM org.apache.activemq.transport.failover.FailoverTransport oneway INFO: Failover timed out after 2ms Dec 7, 2011 3:39:28 PM org.apache.activemq.transport.failover.FailoverTransport doReconnect INFO: Successfully connected to tcp://127.0.0.1:61616 Exception in thread "pool-1-thread-2" java.lang.NullPointerException at com.cicc.mdf.dataserver.messaging.JMSMessagePublisher.publish(JMSMessagePublisher.java:197) at com.cicc.mdf.dataserver.messaging.JMSMessagePublisher.publishRealTimeData(JMSMessagePublisher.java:270) at com.cicc.mdf.dataserver.service.MarketDataService.process(MarketDataService.java:984) at com.cicc.mdf.message.parser.BroadcastMessageParser.parseElement(BroadcastMessageParser.java:219) at com.cicc.mdf.connectivity.RawDataParser.slice(RawDataParser.java:433) at com.cicc.mdf.connectivity.RawDataParser.run(RawDataParser.java:110) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

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

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

编辑:Activemq 版本:5.3.0

编辑:抱歉,URI 有效,这是我的错误,我被另一个异常搞糊涂了

有什么想法吗?

谢谢

ps:这是我第一次上Stackoverflow,如有不合常规的地方,请指正

最佳答案

您的 URI 似乎有效。您能解释一下“重新连接不起作用”是什么意思吗?指数回退是否会增加得如此之多,以至于您认为它不会重新连接?

您可以禁用它并重试:

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

请附上您客户端的一些日志,我们可能会获得有关重新连接不起作用的原因的更多信息。 您使用的 ActiveMQ 客户端是什么? java ? C++? C#?

关于java - 使用 activemq 故障转移 URI 重新连接,而首次连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8428131/

相关文章:

java - 为什么java 8注释@Contened使用128字节,这是大多数硬件上缓存行大小的两倍

java - 带有开关按钮的 Android ListView - 一次只有一个开关处于 Activity 状态

java - 自定义 ListView onItemClickListener

java - 在android中解析文本文件需要2个键作为输入

java - 中断 JMS MessageConsumer.receive() 后如何终止 "ActiveMQ Transport"线程

tomcat - 命令 "sudo service tomcat start"显示失败但一切正常

asp.net - FOSS ASP.Net session 复制解决方案?

spring - 使用 JMS 调用远程服务

apache-camel - Apache Camel/ActiveMQ 优先路由

python - Twisted:ReconnectingClientFactory 连接到不同的服务器