现在使用的的hibernate ,但是 其中有直接使用connection 操作数据库,由于部分statemte 为关闭,时间长就会造成maximum open cursors exceeded 
的错误,全面的改程序已经不现实了,希望听听大家的意见

解决方案 »

  1.   

    没办法,这是程序员的问题,没有其它办法可以弥补。如果有,难道SUN/JBOSS/RedHat不会把它做到产品里面吗? 
    我想我们不会比他们这些发明者自己更聪明!
      

  2.   

    配置proxool Admin Servlet,察看一下你泄露连接没。事务有问题就会这样,如果没问题。我也不清楚,没出过这样错
      

  3.   

    在新的项目里面,我建议大家管理statement ,让它和connection 一样在localThread关闭时候一起关闭。
      

  4.   

    还有ResultSet 啊!我一般是三个一起判断,一起关闭的!!!
      

  5.   

    LZ说的是在JDBC中让statement自动关闭?我觉得目前的各种JDBC版本都没有这个功能.
      

  6.   


    我也实现过这个代码,一般情况下没有问题,但在出不io锁的时候,全部无效了.只能把整个conntion的线程强制关闭,有时锁得厉害,强制关闭connction对应的线程也无效.这时就能 kill -9 java进程了.再启动一下tomcat 6.并发问题中的锁,通常是能避免,则避之. 当然如果java能用的erland中的并发机制最好(也许未来吧).