终止批处理但不回滚的异常

时间:2018-12-20 14:14:56

标签: spring-batch

我需要在表中插入一条记录,然后使批处理异常终止,而不会导致插入内容回滚。

我已经使用过,但不会终止该批次

2 个答案:

答案 0 :(得分:1)

您可以使用容错步骤并使用Parameters设置不应引起回滚的异常。

然后,您可以使用侦听器(ItemProcessListenerItemWriteListener,具体取决于引发异常的位置)来拦截异常,并使用FaultTolerantStepBuilder#noRollback终止步骤(及其周围的工作)。

答案 1 :(得分:0)

我用过这个:

<batch:step id="id">
        <batch:tasklet>
            <batch:chunk reader="reader" processor="processor" writer="writer" commit-interval="1">
            </batch:chunk>
            <batch:no-rollback-exception-classes>
                 <batch:include class="com.exception.myException"></batch:include>
            </batch:no-rollback-exception-classes>
        </batch:tasklet>
    </batch:step>

它仅允许避免回滚,而不能终止批处理。我想在执行myException之后终止批处理。

myException在处理器中启动