Destinationsource.getQueues 没有使用 SSL-Connection

我想知道我的 ActiveMQ 上的队列数,我有这个代码,它适用于我本地安装的 ActiveMQ:


ActiveMQSslConnectionFactory connectionFactory = new ActiveMQSslConnectionFactory(url);

//connectionFactory.setTrustStore("truststore.ts");

//connectionFactory.setTrustStorePassword("password");


ActiveMQConnection connection = (ActiveMQConnection) connectionFactory.createConnection();

connection.start();


DestinationSource destinationQueues = connection.getDestinationSource();        

Set<ActiveMQQueue> queues = destinationQueues.getQueues();  


System.out.println(queues.size());

但是当我在服务器上的 ActiveMQ 上使用它时(使用信任库),它将返回零队列。我知道连接有效,因为我可以使用来自一个确切队列的消息。我已经尝试过其他线程的提示,sleep但它仍然不起作用。


是否可能是因为 SSL 连接,在这种情况下我是否必须更改某些内容?先感谢您。


潇潇雨雨
浏览 110回答 2
2回答

隔江千里

目标源位不能保证及时返回完整的队列等。可能是您在代理上配置了不同的 SSL 连接器,或者可能只是由于 JDK 实现数据的 SSL 吞吐量要慢得多还没到。

侃侃尔雅

发现问题了。它是 ActiveMQ 的设置,可在 activemq.xml 中找到。advisorySupport="false"导致问题的部分。注释掉这个设置后,查询返回真正的队列数量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java