我们在Weblogic Server 12c上运行了一个Java企业应用程序 使用 Spring JDBC 3.2.5 访问 Oracle 11gR2 数据库。 在生产环境中一段时间后,我们得到了这个例外: " ORA-01000 - 超出最大打开游标" 和服务器实例需要 重新启动;似乎开放游标越来越多 直到达到Oracle上设置的最大阈值。增加 门槛并没有解决问题。 我们检查(非常大)的源代码,但我们没有找到任何意义 我们错过关闭连接的地方,此刻;而且我们通常 不打开和关闭连接,但我们使用Spring JdbcTemplate 处理数据库交互。 可能是一个春季问题? 任何提示?
答案 0 :(得分:0)
oracle消息" ORA-01000 - 超出最大打开游标" 可能是因为未关闭PreparedStatement
或ResultSet
。每个PreparedStatement
或ResultSet
都是Oracle数据库中的游标。
要在短期内绕过此错误,您可以增加数据库中打开游标的限制(但迟早会再次出现)。
要绕过此错误,您必须审核整个应用程序并关闭所有已打开的PreparedStatement
或ResultSet
。
此外,跟踪所有PreparedStatement
或ResultSet
的中间JDBC驱动程序可以帮助识别应用程序中存在问题的部分。
答案 1 :(得分:0)
那是Spring版本的错误。更新Spring库