Ваш вопрос не ясен на 100%, но, похоже, проблема в том, что вы генерируете исключение при обработке сообщения, когда вам действительно не нужно.
Если есть реальная проблема сВ сообщении, скажем, XML-файл искажен или недействителен в соответствии с вашей моделью данных, вы не хотите откатывать транзакцию.Возможно, вы захотите записать ошибку, но вы успешно обработали это сообщение, просто «успех» в данном случае означает, что вы определили сообщение как проблемное.
С другой стороны, если естьпроблема в обработке сообщения, вызванная чем-то внешним по отношению к сообщению (например, база данных не работает или тема назначения недоступна), вы, вероятно, хотите откатить транзакцию назад, однако вы также хотите убедиться, что перестали использовать сообщенияпока проблема не будет решена, в противном случае вы получите описанный вами сценарий, в котором вы постоянно обрабатываете одно и то же сообщение снова и снова и терпите неудачу каждый раз, когда пытаетесь получить доступ к тому ресурсу, который в данный момент недоступен.