【问题标题】:Spring 5.0.1 namedJdbcTemplate batchUpdate ORA-01000: maximum open cursors exceededSpring 5.0.1 namedJdbcTemplate batchUpdate ORA-01000:超过最大打开游标
【发布时间】:2017-10-31 20:29:27
【问题描述】:

我最近将我的项目从 Spring Framework 4.3.10 升级到了 5.0.1。 升级后,namedParameterJdbcTemplate.batchUpdate 开始失败并出现此错误

ORA-01000: 超出最大打开游标数。

批量更新 250 条记录的时间没有改变,并且在 Spring 4.3.x 中运行良好。

有没有人在 Spring 5.0.1 中遇到过类似的问题?

我没有看到 Spring 文档中与使用 batchUpdate 相关的任何更改。

任何线索或者它是jire问题的候选者。

我已将 spring-jdbc 单独回滚到版本 4.3.10,从而解决了该问题。 我还提出了一个 Jira 回归缺陷https://jira.spring.io/browse/SPR-16139

【问题讨论】:

标签: java spring spring-jdbc ora-01000


【解决方案1】:

通过 Spring JIRA 票证交换信息后,以下解决了该问题:

  1. 升级到最新的 Oracle JDBC 驱动程序 12.2.0.1 (ojdbc8.jar)
  2. 使用条目创建 spring.properties 文件:spring.jdbc.getParameterType.ignore=true

Oracle 驱动程序升级解决了游标泄漏问题。 spring.properties 文件解决了 spring-jdbc 版本 5.0.1 的性能问题。

我希望 spring-jdbc 5.0.2 中会有一些更改,无需创建自定义 spring.properties 文件即可解决问题。

感谢 Spring 团队的 Juergen Hoeller 解决了这个问题。

【讨论】:

  • 他们解决了这个问题吗?
  • 我们需要在哪里创建 spring.properties ?
【解决方案2】:

是的,该问题已在 Spring 5.0.2 中解决:

https://github.com/spring-projects/spring-framework/issues/20687

【讨论】:

  • 需要将 spring.properties 添加到资源文件夹中。同时在 Spring Boot 中,需要将条目添加到现有的 application.yaml 中。对于较新版本的 Spring,我认为问题不存在。
猜你喜欢
  • 2012-08-24
  • 2011-08-14
相关资源
最近更新 更多