我注意到在使用activemq (5.5)时,如果我执行以下伪代码:
connection = new ActiveMQConnectionFactory(...)
connection.start()
session = connection.createSession(transacted=true, Session.AUTO_ACKNOWLEDGE)
destination = session.createQueue(...)
consumer = session.createConsumer(destination)
消费者似乎在我请求一个元素之前就从队列中抓取了一个元素。即使我做了wireFormat.cacheEnabled=false
有人知道如何防止消费者默认“抓取一个元素”吗?
发布于 2012-04-03 05:31:36
将&jms.prefetchPolicy.all=0
添加到您的连接字符串中,看看这是否会阻止它。预取策略的默认值相当大,我怀疑这就是您所看到的行为。
但是请注意,预取不一定是坏事:http://activemq.apache.org/what-is-the-prefetch-limit-for.html
https://stackoverflow.com/questions/9896731
复制相似问题