Недавно я столкнулся с потребностью в JMS-потребителе в Spring Integration, способном обрабатывать большие объемы пакетов, не нагружая мою целевую базу данных Oracle слишком большим количеством коммитов.
DefaultMessageListenerContainer, похоже, не поддерживает ничего, кроме транзакций сообщения за сообщением.
Я искал решения в Google и нашел пару, но многие из них пострадали от того, что были реализованы не путем наследования от DMLC, а, скорее, путем клонирования и изменения исходного исходного кода из того же самого, что сделало его уязвимым для взлома в случае, если я позже захочу перейти на более свежая версия spring-jms. Кроме того, клонируемый код ссылается на частные свойства DMLC, которые, следовательно, должны быть исключены. И для того, чтобы все это работало, также потребовались пара интерфейсов и настраиваемый прослушиватель сообщений. В общем, я не чувствовал себя комфортно.
Так что делать?