Зависание очереди обмена сообщениями JBoss с удаленным интерфейсом и потребителем MDB

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

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

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

Записи jbm_msg_ref имеют null transaction_id, а состояние — «C», что похоже на то, что оно было переведено в это состояние подготовленным оператором «ROLLBACK_MESSAGE_REF2» из используемого нами oracle-persistence-service.xml.

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

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

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

Спасибо!


person kg.    schedule 18.08.2011    source источник


Ответы (1)


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

person kg.    schedule 23.08.2011