Destinationsource.getQueues不能通过SSL-Connection返回正确数量的队列

时间:2018-07-24 11:04:27

标签: java ssl activemq

我想知道我的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连接,在这种情况下是否需要更改某些内容?预先谢谢你。

2 个答案:

答案 0 :(得分:0)

“目标源”位不能保证及时返回全部队列等。可能是您在代理上配置了SSL连接器不同,或者仅仅是由于JDK上SSL的吞吐量很慢而已数据尚未到达的实现。

答案 1 :(得分:0)

发现了问题。这是ActiveMQ的设置,可在activemq.xml中找到。 advisorySupport="false"部分引起了问题。注释掉此设置后,查询将返回真实的队列数量。