我使用两个不同的连接运行Spring Boot批处理。使用SimpleJDBCTemplate
的Oracle DB和DB2 DB。
问题发生在我发生第一次大约1小时后第二次查询时,因为我在第二次运行之前有300,000次插入。
Oracle连接保持了很长时间,我相信它会抛出IOException
。
我考虑在300,000次插入之前关闭Oracle连接......
这是stacktrace:
Io例外:EDC8120I连接异常结束。嵌套异常 是java.sql.SQLException:Io异常:EDC8120I连接已结束 异常。 在org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84) 在org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) 在org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) 在org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:660) 在org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:695) 在org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:727)
答案 0 :(得分:0)
在每次迭代中使用1000个项目的批量插入。