Экземпляры Weblogic MDB становятся нулевыми, а сообщения в очереди не принимаются

У меня есть чтение MDB из очереди MQ через локальную привязку. Иногда мы замечаем, что сообщения из MQ Queue не подхватываются. Глубина очереди увеличивается до 50000, а количество экземпляров становится равным нулю. Общее количество исполняемых потоков — 25. На физической машине 8 управляемых серверов.


person Kannan    schedule 30.05.2011    source источник


Ответы (1)


Это похоже на проблему с ядовитым сообщением. Если сообщение в очереди не может быть доставлено (например, недопустимые заголовки или неизвестный формат), то классы WMQ JMS попытаются повторно поставить его в очередь. Сначала они будут искать значение в атрибутах BOQNAME и BOQTHRESH очереди. Если они присутствуют, сообщение будет помещено в очередь, указанную в BOQNAME, как только счетчик отказов превысит BOQTHRESH. Если возникнут проблемы с повторной постановкой в ​​очередь, сообщение будет помещено в очередь недоставленных писем. Если это не может быть выполнено, MDB перестает получать сообщения.

Есть несколько возможных проблем с повторной постановкой сообщений в очередь:

  • Очередь BOQNAME или DLQ не существует
  • Очередь назначения requeue существует, но идентификатор, потребляющий сообщения, не имеет к ней полномочий.
  • Очередь назначения запроса заполнена
  • Нет значения в BOQNAME или BOQTHRESH

Если вы еще не определили очередь возврата, определите ее и поместите ее имя в атрибут BOQNAME входной очереди. Затем поместите значение (часто используется «10») в атрибуте BOQTHRESH входной очереди. Убедитесь, что приложение, использующее сообщения, авторизовано для новой очереди возврата, и перезапустите приложение после внесения этих изменений. Если проблема связана с подозрительным сообщением, теперь вы должны увидеть подозрительное сообщение, попадающее в очередь возврата, а основная входная очередь должна затем нормально очищаться.

person T.Rob    schedule 30.05.2011