尝试将块大小从1增加到20时出现问题。 使用Skip监听器,当它跳过块中的记录时,允许第10条记录跳过,然后所有记录都会出现“ERROR:当前事务中止,命令忽略直到事务块结束”和其余记录的问题进程中将失败。
但是当我将块大小设为1时它工作正常,请让我知道我做错了什么。
配置:
return stepBuilderFactory.get("step1")
.<***, Object> chunk(20)
.reader(*****)
.processor(****)
.writer(*****)
.faultTolerant()
.skip(NullPointerException.class)
.skip(NumberFormatException.class)
.skip(PersistenceException.class)
.skip(DataException.class)
.noRetry(DataException.class)
.noRetry(PersistenceException.class)
.noRollback(DataException.class)
.noRollback(PersistenceException.class)
.noSkip(InternalServerErrorException.class)
.noSkip(IntegrationServiceException.class)
.skipLimit(9999999)
.listener(*****)
.build();
技术细节:
spring.framework.version 4.1.7.RELEASE
spring.batch.version 3.0.6.RELEASE
Java 1.8