我们的应用程序已成功使用OracleDataSource多年,现在我们正在评估切换到新的Oracle通用连接池(UCP)。
使用新的UCP池,我们的应用程序运行到ORA-0100:一段时间后最大打开游标。
有些人似乎遇到了类似的问题:
是否有任何已知的解决方法/修复方法?
注意:我们正确地关闭会话和语句,并遵循所有已知的JDBC / Hibernate最佳实践。该应用程序全天候运行,数据访问层代码> 8年,并已经过详尽的测试。我们正在使用Oracle 12c。
答案 0 :(得分:0)
嗯,事实证明我们虽然遵循了所有已知的最佳做法。在某些地方,我们使用ScrollableResult
而没有正确关闭它们。在这种情况下,即使在休眠会话关闭后,它显然也会泄漏底层游标。我们修复了在代码中发现的所有事件,并作为额外的防御措施,我们配置了池的opion maxConnectionReuseTime
以确保定期更新连接。
注意:我们花了一年的时间才找到问题,仅仅几天,在我们发现问题后,我只是忘了回答这个问题......