Spring-batch是否从整个作业运行时间的数据源获取连接?

时间:2014-12-07 11:19:20

标签: spring spring-batch

Spring-batch是否从整个作业运行时间的数据源中获取连接?

总的来说,我在Spring批处理作业中有很长的步骤。在执行期间,Springs从C3P0管理的数据源获取连接,当步骤运行太长时,C3P0通过unreturnedConnectionTimeout收集此连接 - 这会阻止Springs完成对DB的操作。

为了管理这个,我正在考虑将长时间运行的tasklet步骤重构为chunk,希望Spring只从数据源获取连接的时间不超过步执行或块处理时间。如果斯普林斯获得整个工作的连接 - 这种重构将无济于事。

1 个答案:

答案 0 :(得分:2)

Spring Batch出于多种不同原因在多个不同点获取连接,因此,根据您提供的信息,我无法清楚地回答您所遇到的确切问题。话虽这么说,如果你有长时间运行的块或tasklet,每个块都在一个事务的范围内执行,因此需要绑定到一个连接。