ActiveMQ не выводит сообщения из очереди

Недавно я обновил сервер ActiveMQ с версии 5.8 до последней (5.11.1). С тех пор я время от времени замечал, что сообщения накапливаются в определенной очереди и не удаляются.

В нашей архитектуре один производитель, один потребитель. Я вижу, что потребитель все еще подключен, но сообщения от производителя накапливаются. Мое решение заключалось в том, чтобы удалить очередь через веб-консоль. После этого я сразу вижу, что потребитель повторно подключается, и сообщения снова начинают обрабатываться.

Если это уместно, в этом случае производитель запускает NMS на .NET, а потребитель запускает JMS на Java 1.7.


person Ternary    schedule 26.06.2015    source источник
comment
Будет ли работать, если вы отключите / снова подключите потребителя? Удаление звуков очереди является исправлением грубой силы.   -  person SubOptimal    schedule 01.07.2015
comment
@SubOptimal хороший вопрос, на самом деле я не уверен, что ответ на него. У меня нет никаких крючков в приложении для отключения / повторного подключения потребителя во время работы приложения. Я также не знаю способа определить, что он находится в этом зависшем состоянии, поскольку с его точки зрения сообщения просто не приходят.   -  person Ternary    schedule 02.07.2015
comment
Как только в следующий раз связь застряла. Вы можете изменить уровень ведения журнала для регистратора, относящегося к классу org.apache.activemq.transport.TransportLogger, на DEBUG через интерфейс JMX с помощью JConsole. Затем вы должны увидеть сообщение брокера. Может быть, это объяснит, что случилось.   -  person SubOptimal    schedule 02.07.2015


Ответы (2)


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

Если приведенный выше случай верен, это может быть связано с тем, что производитель отправляет файлы, которые не являются жалобой jms.

person Arun Prasad    schedule 07.07.2015
comment
Это хороший способ попробовать, я сделаю это и доложу. Спасибо! - person Ternary; 07.07.2015
comment
Под количеством незафиксированных сообщений вы имеете в виду Number Of Pending Messages в консоли? Это значение, которое я знаю, не равно нулю, и если я щелкну по очереди, я могу увидеть содержимое сообщения, и, по крайней мере, полезная нагрузка выглядит действительной и соответствует тому, что отправляет производитель. - person Ternary; 07.07.2015

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

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

Я забыл вызвать Start () при подключении к очереди. : /

person Jeannine Lee    schedule 27.07.2017