Недавно я обновил сервер от ActiveMQ с 5.8 до последней версии (5.11.1). С тех пор я заметил несколько спорадически, что сообщения будут накапливаться в определенной очереди и не будут удалены.ActiveMQ не принимает сообщения с очереди
Наша архитектура имеет одного производителя, одного потребителя. Я вижу, что потребитель все еще подключен, но сообщения накапливаются от производителя. Мое решение состояло в том, чтобы удалить очередь через веб-консоль. После этого я сразу вижу, как потребитель снова подключается, и сообщения начинают обрабатываться снова.
Если это актуально, в этом случае производитель работает под управлением NMS на .NET, а потребитель запускает JMS на Java 1.7.
Будет ли он работать, если вы отключите/повторно подключите пользователя? Удаление звуков очереди - это «принудительное исправление». – SubOptimal
@SubOptimal хороший вопрос, на самом деле я не уверен в этом. У меня нет приложений в приложении для отключения/повторного подключения потребителя во время работы приложения. Я также не знаю способа обнаружить, что он находится в этом застрявшем состоянии, поскольку с его точки зрения, сообщения просто не входят. – Ternary
Как только сообщение застряло в следующий раз. Вы можете изменить уровень ведения журнала для журнала, связанного с классом 'org.apache.activemq.transport.TransportLogger', на' DEBUG' через интерфейс JMX с помощью JConsole. Затем вы должны увидеть сообщение брокера. Может быть, это объяснит, что произойдет. – SubOptimal