连接池生成后是由容器来管理的,你只要负责释放连接就可以了,程序中不会理会连接池,你的连接池是用 javax.sql.DataSource 创建的吗?

解决方案 »

  1.   

    我用的是resin
    连接池是网上经典的那种连接池我的系统经常出现cpu%
    如果人数少的话这种情况的频率要少一点
      

  2.   

    何时释放呢,因为每次用户访问页面的瞬间连接数据库,连接后还原连接到池中,将client数减1,这样即使有20个用户在系统中也不能保证总是有用户在活动,当没有活动时就关闭连接池
    这样的关闭太频繁了,连接池等于没有用
      

  3.   

    这是说明了,你的Connetion并没有被池化,池法的写法是显示的调用close(),在连接池中则表达将连接放回池中,而不需要重新创造连接!
      

  4.   

    因为我总是销毁连接池了,所以需要重新创造连接销毁的原因是:
    因为每次用户访问页面的瞬间连接数据库,连接后还原连接到池中,将client数减1,这样即使有20个用户在系统中也不能保证总是有用户在活动,当没有活动时就关闭连接池
      

  5.   

    你的连接池是自己创建还是使用jdbc的datasource,如果自己键
    ,就得注意资源的释放,注意检查每个连接的生命周期!
    good luck!
      

  6.   

    非常感谢大家的热心帮忙,这个问题困扰了我太久
    我的连接池是我自己的创建的,这个例子是网上很经典的那种
    我写了一个javabean用来执行与数据库的连接查询及各种操作
    返回结果集rs到jsp页面,在jsp页面上关闭结果集rs,但是没有关闭语句statment我在javabean每次执行executeQuery,或executeUpdate后总是释放连接至池中不知是什么问题导致我的系统死机
      

  7.   

    若是这样,你除了关闭RS外,还需将statment,如果可能的话,还需关闭过多空闲的conn,
    保持一定量的连接,如果连接不够,就动态创建,连接是个很耗资源的东东!超出数目的,用完后就真真正正的close掉。
      

  8.   

    conn一定要close。
    不然人多一定会有问题。