5

我最近将我的项目从 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

4

2 回答 2

3

通过 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 解决了这个问题。

于 2017-11-16T13:50:58.597 回答
0

是的,这个问题在 Spring 5.0.2 中得到了解决:

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

于 2020-08-15T10:11:35.240 回答