tomcat的连接池好得很,我用了1年多了。有泄漏是你程序的问题,所有廉洁得到后都必须关闭,否则就漏了。没关闭的因素很多,如抛异常后把conn.close()跳掉了等。用这个结构就没有问题Connection conn = DBAccess.getConnection();
try {
 ...
} finally {
  conn.close();
}

解决方案 »

  1.   

    我的程序如下:
    <%@ page import="javax.naming.Context" %> 
    <%@ page import="javax.sql.DataSource"%> 
    <%@ page import="javax.naming.InitialContext"%> 
    <%@ page import="java.sql.*"%> 
    <%
     
       DataSource ds = null; 
       try{ 
         Context initCtx = new InitialContext(); 
         Context envCtx = (Context) initCtx.lookup("java:comp/env"); 
         ds = (DataSource)envCtx.lookup("jdbc/EmployeeDB"); 
         Connection conn=ds.getConnection();
    if(ds!=null)  out.println("Connection is OK!"+conn); 
    else  out.println("Fail!"); 
       conn.close();
       }catch(Exception ne){ out.println(ne);} 
     %> 
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head><body></body>
    </html>
    连接市关闭的。并且在访问少的情况下。数据库也不会报错,只有在连续按F5的情况下才会报错。
    是不是我的连接池配置有错呢??
      

  2.   

    链接最好不要在JSP页面关闭.
    如果你按F5的速度快到程序还没有执行到conn.close()时,就重新向服务器发出请求时候是否会发生这种问题呢?仅仅是猜测.
      

  3.   

    我用tomcat4.0.1版,在servlet中连接不能关闭,如果用conn.close()之后,在第二运行时就出错,请问各位,是什么原因呢?
      

  4.   

    try {
     ...
    }catch(Exception e){
     ...
    }finally {
      try{
        conn.close();
      } catch(Exception ex) {}
    }
      

  5.   

    如果一次http connection 还没结束(jsp没运行结束),客户强行断开连接,tomcat的jsp本次运行是继续执行的
      

  6.   

    我用的事postgresql和db2都试过,都有为关闭的连接
      

  7.   

    F5 不断刷新页面 你的代码是会导致pool么关闭
    前面有几位老大已经说过了要
    finally {
      try{
        conn.close();
      } catch(Exception ex) {}
    }
    否则你catch到问题,或者没执行完,conn.close()不执行的阿
      

  8.   

    我也遇到过类似情况,不知道是什么原因?
    如果一次http connection 还没结束(jsp没运行结束),客户强行断开连接时,测试连接数会增加,但长时间不会释放?根本就没有释放的时候,为什么呢?
      

  9.   

    jdbc驱动都用的什么?我用过的oracle和sybase的2.0驱动好像都没问题,或许找个新的试试