如何回滚Spring Batch中的所有步骤

时间:2013-11-15 14:14:07

标签: java spring spring-batch

我创建了一个将我的文件拆分成小块的作业,所有这些块都以分开的步骤读取。对于前者完成3个步骤没有任何错误,并且记录被提交到数据库,但如果第4步失败,我需要回滚上一步中的所有记录。 是否有可能以某种方式回滚它们?

或者也许只有在最后一步正确完成后才有可能提交所有记录?(但这是大文件的问题)

2 个答案:

答案 0 :(得分:5)

使用春季批次时不要玩交易;由于其交易性质,手动管理交易是一个非常糟糕的主意 有关详细说明,请参阅Transaction Management in Spring batchSpring batch - One transaction over whole Job

答案 1 :(得分:0)

不仅仅是spring,对于任何框架,如果你需要跨多个读/写数据源执行原子操作,通常所有这些调用都需要包装在一个事务中,然后在最后提交或回滚。了解JTA如何工作在确定如何使用处理事务的框架方面有很长的路要走,可以找到有关JTA的更多信息here