Зависание очереди сообщений JBoss с удаленным интерфейсом и потребителем MDB - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь диагностировать и устранить возможную экологическую проблему. У нас есть dev, SI и производственные серверы, и они были настроены в течение нескольких лет. Одна из сред перестала работать для определенной очереди JBM, и я до сих пор не могу понять, почему.

То, что я вижу через консоль JMX, - это то, что сообщения «застряли» в состоянии доставки. MessageCount и DeliveringCount увеличиваются каждый раз, когда сообщение отправляется через очередь. OnMessage () объекта Consumer вызывается и выводит сообщения отладки в журнал log4j, однако я не думаю, что он когда-либо завершает запрос.

Это постоянная настройка JBM. Перезапуск сервера JBoss не помогает. Очистка или даже удаление таблиц JBM_ * не помогает.

Записи jbm_msg_ref имеют нулевые транзакции_id и состояние 'C', что, по-видимому, было переведено в это состояние подготовленным оператором "ROLLBACK_MESSAGE_REF2" из используемого нами файла oracle-persistence-service.xml.

Значение MaxPoolSize для потребителя MDB равно 15, и это также максимальный объем сообщений, полученных экземплярами потребителя. После 15 кажется, что очередь «заполняется», и больше нет доступных MBeans-потребителей для приема сообщений.

Я ищу идеи или предложения по диагностике и устранению проблемы. Я гуглил и пробовал что-то в течение нескольких дней с небольшими результатами. Есть много билетов JIRA на эту довольно старую версию JBM, но другие экземпляры той же самой установки работают нормально, поэтому я подозреваю, что есть какая-то проблема с сетью, состоянием гонки или env в этой комбинации один сервер / БД.

JBoss Remoting 4.3.0.GA JBoss Messaging 1.4.0.SP3 JBoss 4.3.0.GA

Спасибо!

1 Ответ

0 голосов
/ 23 августа 2011

Обнаружено, что проблема вызвана проблемами с базой данных Oracle. Экземпляр базы данных был отклонен для решения проблемы. Скорее всего, производительность базы данных была достаточно медленной, чтобы вызвать проблему синхронизации с подтверждением сообщения.

...