开始下面是我的重试配置:Spring Batch的重试 - 没有春天开始离开的地方或从开始
<batch:job id="myLookUpLoadJob">
<batch:step id="myLookUpTruncateStep">
<batch:tasklet ref="myLookupTruncateTasklet" />
<batch:next on="*" to="myLookUpLoadStep"/>
</batch:step>
<batch:step id="myLookUpLoadStep">
<batch:tasklet>
<batch:chunk reader="myLookupItemReader"
writer="myLookupItemWriter" commit-interval="100" retry-limit="2">
<retryable-exception-classes>
<include class=" org.springframework.dao.DataAccessResourceFailureException"/>
</retryable-exception-classes>
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
下面是我的问题,而我无法摆脱春季DOC答案 - 将不胜感激输入:
当发生重试后处理200行发生异常时,它是从行201开始还是从行1开始?
编辑
我试图解决的问题是,在执行作业时,后立即提交第一个块(100行),到ItemReader的连接被终止(复位)。作业然后重新启动并成功完成。
我想知道如果这可能帮助:
从AbstractCursorItemReader
有将共享用于光标与步处理的其它部分连接的选项(setUseSharedExtendedConnection(布尔) 。如果你将这个标志设置为true,那么你必须将DataSource包装在ExtendedConnectionDataSourceProxy中,以防止在作为步骤处理的一部分执行每次提交之后关闭和释放连接。还必须使用支持JDBC 3.0或更高版本的JDBC驱动程序,因为光标将随附加打开选项'HOLD_CURSORS_OVER_COMMIT'已启用。
你在用什么读卡器? –
org.springframework.batch.item.database.JdbcCursorItemReader。读写也是针对两种不同的数据源,这就是为什么最初我想追求XA分布式事务。 –
@MichaelMinella - 你有没有更新?我计划在下周初尝试重启(因为我们本周已部署)。 AbstractCursorItemReader中的文档UseSharedExtendedConnection似乎很适合尝试。 –