日期:2014-05-16  浏览次数:20980 次

oracle报错ORA-01000: maximum open cursors exceeded
我使用java写的程序,然后调用数据库,但过段时间就会报ORA-01000: maximum open cursors exceeded这个错误。
从网上查资料,说是连接的游标超过了最大数目。

但是我关于数据集和链接的变量都关闭了,还有每个表空间的默认空间都是100M,下一次分配的空间也是100M。
我就不知道是为什么会报这样的错了,大家有了解这方面的吗?我用的是oracle10g
------解决方案--------------------

一般来说是游标不够用了。
只需在initSID.ora文件中加上一行
open_cursors = ****
------解决方案--------------------
可以先调高session可以打开的cursor数量试试看。
先查看下当前设置:
select value from v$parameter where name = 'open_cursors';
然后修改:
alter system set open_cursors=300;
------解决方案--------------------
修改参数同上
是不是有多余的连接没有关闭啊
------解决方案--------------------
资源包括,连接,语句,记录集等
------解决方案--------------------
这个问题我曾经遇到过
1.可能是有多于连接没关闭,但可能性不大
2.可以适当调大open_cursors参数
3.检查是否多客户端登陆时未使用连接池.
   如开发用tomcat,发布时应考虑用jndi
------解决方案--------------------
考虑一下是否受到了进程的限制:
sessions = 1.1 * processes + 5   
------解决方案--------------------
修改初始化参数