Spring Batch Restart - 没有选择正确的行

时间:2013-10-09 14:04:01

标签: spring spring-batch restart

我有一个具有以下属性的spring批处理作业:

    commit-interval: 25.
    skip-limit of 3.

在我的集成测试中,我注入了一个假的编写器,它将抛出可跳过的异常,然后注入一个id列表,这将导致异常被抛出。

在我的测试之前,我创建了135行。我配置了那些行

    "9", "11", "44", "51", "70" 

将是导致ItemWriter抛出异常的行。

在第一次运行时一切运行良好,正如预期的那样,作业在第51行的50次提交之后失败,或者更确切地说当作者中的“某事”检测到现在已超出限制的可跳过的异常时另外,我断言9,11和44是在我可以预期的可跳过的听众中注册的。

我意识到批处理作业在事务失败之前没有单独包装事务,比如id为9,11和44,因为它已经知道跳过限制了。

但是,当我重新启动作业时,起始行是74 - 不是51,正如我所料。

因此从51到73被跳过?

我无法想出这个。或者为什么它会跳过完全失败的块。

任何帮助都将不胜感激。

大卫。

1 个答案:

答案 0 :(得分:0)

此错误的修复程序将包含在弹出批次的下一个版本中。

https://jira.springsource.org/browse/BATCH-2122