потребитель activemq, похоже, "всегда кеширует"? - PullRequest
2 голосов
/ 27 марта 2012

Я заметил с помощью 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

Кто-нибудь знает, как запретить потребителю "захватить элемент" по умолчанию?

1 Ответ

3 голосов
/ 03 апреля 2012

Добавьте &jms.prefetchPolicy.all=0 в строку подключения и посмотрите, не остановит ли это.Значения по умолчанию для политики предварительной выборки довольно велики, и я подозреваю, что такое поведение вы наблюдаете.

Имейте в виду, что предварительная выборка не обязательно плохая вещь: http://activemq.apache.org/what-is-the-prefetch-limit-for.html

...