我想知道我的 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 连接,在这种情况下我是否必须更改某些内容?提前谢谢你。
最佳答案
发现问题。这是在 activemq.xml 中找到的 ActiveMQ 的设置。 advisorySupport="false"
部分导致了问题。注释此设置后,查询将返回真实的队列数量。
关于java - Destinationsource.getQueues 不使用 SSL 连接返回正确数量的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51497014/