Я не до конца понимаю вашу проблему.Возможно, дело только в том, какую обработку ошибок использовать.
Настройка: у вас есть маршрут Camel с транзакционным JMS-потребителем , и по этому маршруту вы отправляете несколько сообщений в одноили другие очереди .
Хороший случай: маршрут успешно завершен и все сообщения JMS доставлены.
Случай ошибки: если ваш маршрут сталкивается с ошибкой , скажем, в середине обработки, некоторые сообщения JMS уже "отправлены", некоторые не .
В этом случае вообще никаких сообщений не отправляется , поскольку Camel выполняет откат, а уже "отправленные" сообщения JMS на самом деле не отправляются или, если быть более точным, они еще не совершено , и они не будут совершены.
Важная деталь: Верблюд не должен обрабатывать ошибку .Если это так, ошибка не передается посреднику, и, следовательно, использованное сообщение фиксируется, как и транзакция JMS.