Экземпляры Weblogic MDB становятся равными нулю, а сообщения в очереди не принимаются - PullRequest
1 голос
/ 30 мая 2011

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

1 Ответ

1 голос
/ 30 мая 2011

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

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

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

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

...