Как мы все знаем, в Spring Batch используется обработка, ориентированная на куски, начиная с версии 2.0.
Означает ли это, что в случае возникновения исключения в модуле записи элемента диспетчер транзакций источника данных откатит весь блок или только связанный элемент?
На самом деле, я попробовал и увидел, что фреймворк откатывает весь кусок. Это не то, что мне нужно, потому что я не хочу, скажем, 499 элементов, которые были успешно обработаны, откатываться в блоке, состоящем из 500 элементов, когда последний элемент вызывает исключение.
Единственное решение, которое мне удалось найти, - добавить указанный ниже атрибут в мой тасклет. Однако я не уверен, что это правильно.
<batch:transaction-attributes propagation="NOT_SUPPORTED"/>
Другое мнение заключалось в том, чтобы просто уменьшить размер куска до 1 (одного), но этот также не имеет особого смысла.
Возможно, Spring Batch не подходит для моей проблемной области. Если да, пожалуйста, скажите мне, чтобы я больше не боролся с подобным поведением, специфичным для фреймворка.
Любые предложения будут с благодарностью.