2015-09-23 3 views
1

После выбрасывания исключения, MQ сообщение конечная точка нашего приложения Java MDB время паузы с сообщениемКак предотвратить Java MDB от паузы при ошибках в IBM Websphere WAS 8.5?

CWWMQ0007W: The message endpoint <APP> has been paused by the system. Message delivery failed to the endpoint more than <N> times. 

Я понимаю, что это в соответствии со спецификацией приложений и что такое поведение является разумным для многих приложений.

В нашем случае мы хотели бы, чтобы сообщение MQ вызывало исключение из очереди из очереди, а приложение оставалось запущенным, т.е. обработка следующих сообщений.

Есть ли способ достичь этого, кроме как поймать любой метод Throwable в методе MDB onMessage?

ответ

2

Прочтите эту статью How WebSphere Application Server V8.x handles poison messages, в ней описаны различные сценарии.

Если вы хотите просто продолжить обработку без остановки конечной точки, снимите отметку с Stop endpoint if message delivery fails или установите Number of sequential delivery failures before suspending endpoint на некоторое более высокое значение в конфигурации спецификации активации. Вы также должны настроить свойство Backout threshold (BOTHRESH) в WebSphere MQ.

Таким образом, сообщение об ошибке будет отправлено в DEAD.LETTER.QUEUE по MQ и позволит вам обрабатывать следующие сообщения.