Oracle UCP 池泄漏游标?

Oracle UCP Pool leaking cursor?

我们的应用程序已成功使用 OracleDataSource 多年,现在我们正在评估切换到新的 Oracle 通用连接池 (UCP)。

使用新的 UCP 池,我们的应用程序遇到 ORA-0100:一段时间后打开的游标数达到最大值。

有些人似乎遇到过类似的问题:

是否有任何已知的解决方法/修复?

注意:我们会正确关闭会话和语句,并遵循所有已知的 JDBC/Hibernate 最佳实践。该应用程序全天候运行,数据访问层代码已超过 8 年,并且已经过详尽测试。我们正在使用 Oracle 12c。

好吧,事实证明我们虽然遵循了所有已知的最佳实践。在某些地方,我们使用了 ScrollableResult 而没有正确关闭它们。在这种情况下,它显然会泄漏底层游标,即使在休眠会话关闭后也是如此。我们修复了我们在代码中发现的所有事件,作为额外的防御措施,我们配置了池的选项 maxConnectionReuseTime 以确保定期更新连接。

注:我们发现问题没用一年,才几天而已,弄明白问题后干脆忘记回答了...