我有一些从Oracle检索数据的JDBC代码。java jdbc和oracle - 超出最大打开游标数
在我的方法我用事先准备好的声明,但我不关闭准备好的声明。 为了测试它,我在一个循环跑了这一点,果然我有一个例外:
ORA-01000: maximum open cursors exceeded
我的问题是在托管环境(代码中使用连接池部署Java EE应用服务器上)的情况下:
- 应用程序会发生什么?
- 除非连接被关闭/回收,否则永远无法启动对数据库的任何SQL查询吗? (假设池中只有1个连接)
我假设池中的连接并没有真正关闭 - oracle会话仍然存在。
感谢斯蒂芬 - 是的,这部分了解有关如何防止这种情况的发生 - 我的问题是更相关的是什么,如果发生这种情况的影响 - 这是像泄漏的连接,可以使应用程序停顿 - 但在游标被泄露的情况下 - 它是否会导致应用程序停顿? – akila 2011-12-19 02:18:17
@akila - ResultSet对象的泄漏(即未能关闭它们)将导致查询失败,并可能导致应用程序停顿。 – 2011-12-19 14:24:34
谢谢 - 我想我会尝试使用一些应用程序服务器,并确认 – akila 2011-12-21 10:07:12