【问题标题】:Connection ended abnormally Spring Jdbc连接异常结束 Spring Jdbc
【发布时间】:2016-12-22 01:10:12
【问题描述】:

我正在运行具有两个不同连接的 Spring Boot 批处理。一个 Oracle DB 和一个 DB2 DB 都使用SimpleJDBCTemplate。 当我在第一次查询大约 1 小时后第二次查询时会出现问题,因为在第二次运行之前我有 300,000 次插入。

Oracle 连接保持活动这么长时间,我相信它会抛出 IOException

我正在考虑在这 300,000 次插入之前关闭 Oracle 连接...

这是堆栈跟踪:

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)

【问题讨论】:

  • 您是否使用批量插入来插入行?
  • 不幸的是,我们的服务器每次最多插入 10000 次...我正在使用,但 DBA 告诉我要一个接一个...

标签: spring spring-boot spring-jdbc


【解决方案1】:

在每次迭代中使用批量插入 1000 个项目。

【讨论】:

  • 问题解决了!我使用的是不关闭连接的 SingleConnectionDataSource...在更改为 commons dbcp BasicDataSource 后它工作正常!
猜你喜欢
  • 2013-06-13
  • 2012-11-09
  • 2012-09-09
  • 2012-06-03
  • 2012-03-09
  • 2019-12-26
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多