我使用java写的程序,然后调用数据库,但过段时间就会报ORA-01000: maximum open cursors exceeded这个错误。
从网上查资料,说是连接的游标超过了最大数目。但是我关于数据集和链接的变量都关闭了,还有每个表空间的默认空间都是100M,下一次分配的空间也是100M。
我就不知道是为什么会报这样的错了,大家有了解这方面的吗?我用的是oracle10g

解决方案 »

  1.   


    一般来说是游标不够用了。
    只需在initSID.ora文件中加上一行
    open_cursors = ****
      

  2.   

    可以先调高session可以打开的cursor数量试试看。
    先查看下当前设置:
    select value from v$parameter where name = 'open_cursors';
    然后修改:
    alter system set open_cursors=300;
      

  3.   

    这个问题我曾经遇到过
    1.可能是有多于连接没关闭,但可能性不大
    2.可以适当调大open_cursors参数
    3.检查是否多客户端登陆时未使用连接池.
       如开发用tomcat,发布时应考虑用jndi
      

  4.   

    考虑一下是否受到了进程的限制:
    sessions = 1.1 * processes + 5