Я перепробовал все комбинации noSkip(), noRetry(), noRollback()
и не добиваюсь этого. Если я установлю шаг без noRollback(MyException.class)
, шаг завершится неудачей, как только обработанная строка сгенерирует исключение, но отменит все действия db. Если я использую noRollback(MyException.class)
, то состояние БД сохраняется, но я не получаю журнал фатальной ошибки, и шаг не прерывается / не выполняется.
Любой способ обработки этого интуитивно понятен? Это последний код, который я пробовал
return this.stepBuilderFactory.get(STEP_PROCESS_ROWS)
.faultTolerant()
.noSkip(UnexpectedJobExecutionException.class)
.noRetry(UnexpectedJobExecutionException.class)
.noRollback(UnexpectedJobExecutionException.class)
.reader(myReader)
.processor(myProcessor)
.writer(myWriter)
.build();