AMQP 1.0 Qpid JMS和故障转移/重新连接问题

时间:2016-03-22 14:31:44

标签: jms amqp failover qpid reconnect

我正在使用Qpid JMS 0.8.0库来实现独立的Java AMQP客户端。因为底层传输连接往往每隔几个小时就会中断,所以我使用以下配置设置了重新连接:

故障切换:(amqps:// someurl:5671)?failover.reconnectDelay = 2000&安培; failover.warnAfterReconnectAttempts = 1

根据Qpid客户端配置说明页面,我希望我的客户端继续尝试重新连接,增加因子2的尝试延迟(从2秒开始)。相反,根据日志文件,当检测到连接失败时,只执行了两次重新连接尝试,最后整个客户端应用程序已经终止,我明确希望避免!这是日志文件:

2016-03-22 14:29:40 INFO AmqpProvider:1190 - 由于对等体超过我们请求的空闲超时,IdleTimeoutCheck关闭了传输。 2016-03-22 14:29:40 DEBUG FailoverProvider:761 - 故障转移:提供程序报告失败:由于对等方超过我们请求的空闲超时而导致传输关闭 2016-03-22 14:29:40 DEBUG FailoverProvider:519 - 处理提供商故障:由于对等方超过我们请求的空闲超时而导致传输关闭 2016-03-22 14:29:40 DEBUG FailoverProvider:653 - 连接尝试:[1] to:amqps://publish.preops.nm.eurocontrol.int:5671正在进行中 2016-03-22 14:29:40 INFO FailoverProvider:659 - 连接尝试:[1]:amqps://publish.preops.nm.eurocontrol.int:5671失败 2016-03-22 14:29:40 WARN FailoverProvider:686 - 无法连接之后:1次尝试继续重试。 2016-03-22 14:29:42 DEBUG FailoverProvider:653 - 连接尝试:[2]:amqps://publish.preops.nm.eurocontrol.int:5671正在进行中 2016-03-22 14:29:42 INFO FailoverProvider:659 - 连接尝试:[2]:amqps://publish.preops.nm.eurocontrol.int:5671失败 2016-03-22 14:29:42 WARN FailoverProvider:686 - 无法连接之后:2次尝试继续重试。 2016-03-22 14:29:43 DEBUG ThreadPoolUtils:156 - 关闭ExecutorService:java.util.concurrent.ThreadPoolExecutor@778970af [已终止,池大小= 0,活动线程= 0,排队任务= 0,已完成任务= 0 ]是shutdown:true并终止:true:0.000秒。 2016-03-22 14:29:45 DEBUG ThreadPoolUtils:192 - ExecutorService等待2.004秒:java.util.concurrent.ScheduledThreadPoolExecutor@877a470 [正在关闭,池大小= 1,活动线程= 0,排队任务= 1,已完成tasks = 3]终止...... 2016-03-22 14:29:46 DEBUG ThreadPoolUtils:156 - 关闭ExecutorService:java.util.concurrent.ScheduledThreadPoolExecutor@877a470 [已终止,池大小= 0,活动线程= 0,排队任务= 0,已完成任务= 4 ]是shutdown:true并终止:true:2.889秒。

任何想法,我在这里做错了什么?基本上,我正在寻找的是一个能够检测传输连接失败并尝试每5-10秒重新连接的客户端。

非常感谢!

0 个答案:

没有答案