连接时ActiveMQ超时

 看是语言_263 发布于 2023-02-09 09:06

我有以下问题:我尝试使用以下代码连接到ActiveMQ代理(现在已关闭)

connectionFactory = new ActiveMQConnectionFactory(this.url + "?timeout=2000");
connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
LOGGER.info("Connected to " + this.url);

问题是超时没有任何影响

connection.start()

永远被封锁了.我检查了ActiveMQ日志,发现了以下信息:

2013-12-20 01:49:03,149 DEBUG [ActiveMQ Task-1] (FailoverTransport.java:786) - urlList connectionList:[tcp://localhost:61616?timeout=2000], from: [tcp://localhost:61616?timeout=2000]
2013-12-20 01:49:03,149 DEBUG [ActiveMQ Task-1] (FailoverTransport.java:1040) - Connect fail to: tcp://localhost:61616?timeout=2000, reason: java.lang.IllegalArgumentException: Invalid connect parameters: {timeout=2000}

timeout参数在http://activemq.apache.org/cms/configuring.html中指定

有谁知道如何将超时参数传递给ActiveMQConnectionFactory?或者如何为connection.start()设置超时?谢谢!

更新:我在Stackoverflow上发现了这一点:ActiveMQ - 恢复连接后的CreateSession故障转移超时.我试了但是引发了以下异常:

javax.jms.JMSException: Could not create Transport. Reason: java.lang.IllegalArgumentException: Invalid connect parameters: {transport.timeout=5000}
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)

我使用maven repo的ActiveMQ 5.8.0

1 个回答
  • 在尝试设置超时属性时,似乎您的网址仍然无效.

    如果您正在尝试拥有一个故障转移URL,它看起来就像是因为它正在进入故障转移代码,那么您可能正在寻找initialReconnectDelay(可能还有maxReconnectAttempts,如果服务器仍然关闭后会抛出异常)达到了尝试次数).

    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("failover://(tcp://localhost:61616)?initialReconnectDelay=2000&maxReconnectAttempts=2");
    

    2023-02-09 09:10 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有