检查WEB程序,估计是程序中的数据库连接使用之后没有正常关闭和释放,当数据库连接数满,其他程序则无法连接到数据库。

解决方案 »

  1.   

    估计是应用端(这里指web应用)没正常关闭连接
    可能导致很多用户进程处于killed状态,但又一直不释放
    达到一定数量后,oracle无法再建立用户进程
    导致后来的连接一直等待解决办法:
    1.非根本方法:每天手工清理killed进程
    2.根本性方法:查找web端原因并修正
      

  2.   

    谢谢几位,好像大家都认为是程序的数据库连接资源没释放造成的。我也在查,郁闷是数据访问部分上公用模块封装了,没源代码,公司其他人没听说有这种现象发生啊。
    另,数据库一直是打开的。重启服务器一切正常,也许两天左右后就不能访问数据库了。
    在反编译数据访问的dll......
      

  3.   

    建议设置系统若一个session长期不动就自动KILL掉:alter profile default limit idle_time=1800;说明:设置缺省用户profile,限制每个会话若连续1800秒没动静就kill掉。
      

  4.   

    用oracle DBA工具查一下是不是表空间满了而没有自动扩展,如果表空间满了会拒绝用户登陆的!