我们有一个基于JSP + Hibernate的传统应用程序,它运行在WAS 7& Oracle 10g。
目前该应用程序正在使用Hibrenate 3.1和ojdbc4.jar
我们的任务是使此应用程序与Oracle 11一起使用。
当我们将hibernate_cfg.xml中的连接字符串切换到Oracle 11时,应用程序运行正常几分钟,我们得到ORA-01000: maximum open cursors exceeded
错误。
经过一番搜索,我们将Hibernate升级到3.2.0& ojdbc6.jar(Oracle 11g jdbc dirvers)
最终结果是一样的。我们仍然会收到此错误。因此,我们接下来的步骤是禁用此处所述的预准备语句https://community.jboss.org/wiki/HibernateFAQ-PlatformSpecificIssues?_sscc=t#After_a_while_Oracle_throws_this_exception_too_many_open_cursors
重启WAS后几分钟内,最终结果仍然相同,出现ORA-1000
错误。
我们不使用任何连接池。我们已经与DB管理员进行了检查,他说最大允许游标是3200.DBAdmin提到他不会将光标大小增加到3200以上
我同意JSP中存在一些错误的数据库逻辑代码,但由于我们没有任何专家也没有资金可以解决这个问题
你们有没有其他方法可以阻止这种情况?
所有这些都在测试服务器上完成
我不是这些技术的专家,但我必须帮助团队继续前进
非常感谢提前