2015-07-06 4 views
0

ActiveMQ: 5.10.2 внутри Karaf OSGiActiveMQ сообщение "замораживание" на очереди потребляющего

KahaDB настойчивостью ServiceMix в.

Настройки брокера по умолчанию. Настройки по умолчанию в соединениях (tcp: //x.x.x.: 61616)

16 очередей предопределенных в activemq.xml.

Два клиентских подключения к ActiveMQ. Один для сеансов продюсера, один для сеансов пользователей.

Производители отправляют сообщения всем очередям.

16 потребительских сеансов расходует сообщения.

Все идет нормально, но: Если я уменьшаю количество потребителей до 1 (или 2 или три, я не знаю, где порог), так что сообщения из одной очереди потребляют и сообщения из других очередей хранятся. В то время как некоторое время проходит, я вижу это изображение:

  1. Это 1 потребитель прекращает получать сообщение. Он думает, что больше нет сообщений.
  2. От activemqweb Я могу видеть, что количество сообщений в этой потребляющей очереди равно> 0
  3. От activemqweb Я не вижу сообщений в Браузере сообщений в этой очереди потребления.
  4. Я вижу сообщения из других очередей в Message Browser.

Если я начинаю какой-либо другой потребитель (или перезапустить ActiveMQ), чтобы получать сообщения из разных очереди я вижу:

  1. я начинаю видеть сообщения в первом браузере очереди сообщений (те, которые были отправлены раньше, но убежище после «замораживания»).
  2. Первая очередь продолжает потребляться
  3. Вторая очередь начинает потреблять.
  4. «Замораживание» может произойти снова через какое-то время и начать потреблять другую очередь, это снова поможет.

Если я начинаю всех потребителей, я не вижу «замораживания сообщений». Если вы просто остановите и запустите потребителя в «замороженной» очереди, ничего не произойдет. Это нужно сделать на «незамерзшей очереди», чтобы «разморозить» «замороженную очередь».

Это также происходит, если нет активного производителя, только потребителя.

Что это может быть?

спасибо.

+0

Если у меня есть только одна очередь и производят и потребляют сообщения, я также не вижу никаких заморозков. Это происходит только тогда, когда есть несколько очередей с сообщениями, и не все они потребляют ... –

+0

Посмотрите на балансировку нагрузки очередей. Похоже, что сообщения, запланированные во внутренние очереди для каждого потребителя – t0k3n1z3r

ответ

0

Oups. Я нашел, что это было.

Это только что доступная память превышена.

Я не установил -Xms и -Xmx, поэтому он работает только с максимальной емкостью 512 МБ.

И когда размер сообщений, хранящихся и не потребляемых, закрыт до вершины, я получаю это поведение.

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