【问题标题】:ActiveMQ failoverTransport fails reconnection if on application startup queue is not reachable如果无法访问应用程序启动队列,则 ActiveMQ failoverTransport 重新连接失败
【发布时间】:2020-07-09 21:39:37
【问题描述】:

我有一个在 Spring 的帮助下使用 ActiveMQ 的应用程序。我关注了this article

这是我的连接字符串:

failover:(tcp://localhost:61616)?initialReconnectDelay=100&startupMaxReconnectAttempts=3

如果队列无法访问,我使用failover 激活自动重新连接。如果第一次连接正常,这可以正常工作。在日志上我可以看到与队列的连接丢失然后恢复。

但如果应用程序启动时队列不可用,那么我在日志中只能看到:

Could not refresh JMS Connection for destination MYQUEUE Cause: The JMS connection has failed: Connection refused

没有更多信息。

在连接 url 中我添加了startupMaxReconnectAttempts=3 以便让应用程序启动,否则它会无限期地等待队列可用。

是否可以有一个配置,即使在启动期间不可用也可以重新连接到队列?

如果我必须提及其他细节,请告诉我。

【问题讨论】:

    标签: activemq spring-jms


    【解决方案1】:

    如果连接被拒绝,那么远程代理很可能已关闭并且客户端无法重新连接。在这种情况下,除了继续尝试或放弃(或设置主代理和备份代理拓扑)之外,没有什么可以做的。如果代理启动但由于某些安全策略而拒绝自动创建队列,那么同样客户端将无法重新连接,因为它无法从先前的故障转移重建其状态。这些都是您需要在代理配置和可用性设置中解决的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 2018-04-14
      • 2022-07-29
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      相关资源
      最近更新 更多