1

我们有一个 Java 企业应用程序在 Weblogic Server 12c 上运行,使用Spring JDBC 3.2.5来访问Oracle 11gR2数据库。一段时间后在生产环境中我们得到这个异常: “ORA-01000 - 超出最大打开游标”并且需要重新启动服务器实例;似乎打开的游标越来越多,直到达到 Oracle 上设置的最大阈值。提高门槛并没有解决问题。我们检查了(非常大的)源代码,但目前我们没有发现任何我们错过关闭连接的地方;此外,我们通常不会打开和关闭连接,而是使用 Spring JdbcTemplate 来处理数据库交互。可能是弹簧问题?有什么提示吗?

4

2 回答 2

0

oracle 消息“ORA-01000 - 超出最大打开游标”可能是由于没有关闭PreparedStatements 或ResultSets。每个PreparedStatementorResultSet都是 Oracle 数据库中的一个游标。

要在短期内规避此错误,您可以增加数据库中打开游标的限制(但迟早会再次发生)。

要真正规避此错误,您必须审核完整的应用程序并关闭所有打开PreparedStatement的 s 或ResultSets。

PreparedStatement此外,跟踪所有s 或s的中间 JDBC 驱动程序ResultSet可以帮助识别应用程序的问题部分。

于 2014-09-22T12:19:56.183 回答
0

这是那个版本的 Spring 的错误。更新 Spring 库

于 2018-08-07T09:52:19.613 回答