查看其CPU占用情况也会越来越大,最终造成机器越来越慢,或者jsp不能访问.

解决方案 »

  1.   

    我已经关闭了连接,但是查看sql server进程信息中会保留这样的
    sp_cursorclose;1
    的进程,还占用一定的cpu资源.
      

  2.   

    =记录或连接没有关闭造成机器运行一段时间就死机=
    是数据库死还是tomcat死?
      

  3.   

    确定是数据库的死,tomcat运行正常。sql server数据库已经打不开了。只有重新启动才行,有更好的解决办法没有?每次执行关闭有什比较好的解决办法?
      

  4.   

    建议用服务器的连接池,或开源的数据库联接池,如:DBPool ;你设置好允许的最大连结数,超过连结束会throw Exception , 所以肯定不会死机。
    例外,要养成用完就关比联接的习惯。
    还要注意在程序执行异常事也要关闭。自己写数据库连接池肯定吃力不讨好,偶教训深刻哦。
      

  5.   

    提醒楼主Statement 和 Connection 都要关闭。不然有问题的。
      

  6.   

    ResultSet Statement Connection都要关闭的...然后还是DataSource比较方便一些...
      

  7.   

    ResultSet
    PreparedStatement
    Connection
    都要关闭的。要有用后马上关闭的习惯
      

  8.   

    要保证每个连接都确实关闭了(按顺序ResultSet,Statement,Connection) 逐个关闭。
    主要是检查每个可能的异常的出现 会不会 绕过这个步骤,因为异常而没有被关闭的情况太多了, 
    很多人认为自己明确关闭了连接,其实很多因为异常的缘故而漏掉了。
      

  9.   

    感谢大家的支持。我想问一下,我在插入数据时全部用sql 语句的insert来实现的,建立
    connection conn
    statement  stm
    我直接执行了stm.executeUpdate("insert into .....")
    stm.close();
    conn.close();
    这样可以吗?但是我怎么都发现留有上面说到的sp_cursorclose;1
    大家有sql server+jsp开发项目的吗?查看一下管理--》当前活动---》进程信息是否会多出来些东西。如何解决这样的问题呢?
      

  10.   

    rs.close() 呢?
    不是每个驱动程序和容器都会帮你做好所有忘记的事情.而且应该在 finally 中关闭, 确保即使出现异常也会关闭连接( 很多人不是放这里).
    而且尽可能每个都按关闭, 不要出现 rs.close 失败(抛出异常)导致后面的 statement ,connection 就没有执行关闭操作. 到这关闭的步骤,如果还出现了异常就不用再抛了,直接写日志好了,因为到这一步,你能做的事情已经做完,省下的是没有办法做到的(只有让用户下次重试了,资源还是要释放的,因为你下次还是会申请的嘛).