【发布时间】:2013-10-02 06:35:37
【问题描述】:
我们已经在使用 Spring 批处理的批处理作业中实现了 ItemProcessListener 和 SkipListener。 我们能够在数据库中记录跳过的项目,而无需创建单独的事务。但是在ItemProcessListener中调用onProcessError方法时,由于对应的Runtime Exception,事务被回滚。
我们在数据库更新的服务接口上使用@Transactional 和传播作为REQUIRES_NEW,但它仍然回滚了事务。
我们的目标是在进程或写入器组件出现错误并且批处理失败时在数据库中记录异常详细信息。如上所述,当我们从覆盖的侦听器中的 onProcessError 方法或 onWriteError 方法触发 DB 插入时,日志记录不起作用。事务被回滚。
我们尝试使用 onProcessError 上的注释创建一个新事务,但它失败了。请为此提供一些输入。
希望这可以解决问题。
【问题讨论】:
标签: spring-batch