2012-03-27 4 views
2

я заметил, с ActiveMQ (5.5), если я делаю это псевдокод:activemq потребитель кажется «всегда кеш»?

connection = new ActiveMQConnectionFactory(...) 
connection.start() 
session = connection.createSession(transacted=true, Session.AUTO_ACKNOWLEDGE) 
destination = session.createQueue(...) 
consumer = session.createConsumer(destination) 

что потребитель появляется, чтобы захватить элемент из очереди, прежде чем я даже запросить. Даже если я делаю wireFormat.cacheEnabled = false

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

+0

Что ваша строка соединения выглядит? это приведет к предварительной выборке. –

+0

? WireFormat.maxInactivityDuration = 0 & wireFormat.cacheEnabled = false – rogerdpack

+0

Попробуйте добавить '& jms.prefetchPolicy.all = 0' и посмотреть, не остановится ли это. Имейте в виду, что эта предварительная выборка не является необходимой потребностью: http://activemq.apache.org/what-is-the-prefetch-limit-for.html –

ответ

3

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

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

+0

true, интересно, если я * не * использую кеш, он может немного замедлить активность. – rogerdpack

Смежные вопросы