大家来聊聊,tomcat的连接池有泄漏。 tomcat的连接池好得很,我用了1年多了。有泄漏是你程序的问题,所有廉洁得到后都必须关闭,否则就漏了。没关闭的因素很多,如抛异常后把conn.close()跳掉了等。用这个结构就没有问题Connection conn = DBAccess.getConnection();try { ...} finally { conn.close();} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的程序如下:<%@ 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的情况下才会报错。是不是我的连接池配置有错呢?? 链接最好不要在JSP页面关闭.如果你按F5的速度快到程序还没有执行到conn.close()时,就重新向服务器发出请求时候是否会发生这种问题呢?仅仅是猜测. 我用tomcat4.0.1版,在servlet中连接不能关闭,如果用conn.close()之后,在第二运行时就出错,请问各位,是什么原因呢? try { ...}catch(Exception e){ ...}finally { try{ conn.close(); } catch(Exception ex) {}} 如果一次http connection 还没结束(jsp没运行结束),客户强行断开连接,tomcat的jsp本次运行是继续执行的 我用的事postgresql和db2都试过,都有为关闭的连接 F5 不断刷新页面 你的代码是会导致pool么关闭前面有几位老大已经说过了要finally { try{ conn.close(); } catch(Exception ex) {}}否则你catch到问题,或者没执行完,conn.close()不执行的阿 我也遇到过类似情况,不知道是什么原因?如果一次http connection 还没结束(jsp没运行结束),客户强行断开连接时,测试连接数会增加,但长时间不会释放?根本就没有释放的时候,为什么呢? jdbc驱动都用的什么?我用过的oracle和sybase的2.0驱动好像都没问题,或许找个新的试试 Swing程序面板上使用搜索框 奇怪,这题有答案吗?? 按逻辑,我的这判断应该等于10,11,12,13,14,15的数组呀?怎么不对? 一个关于crypto的问题 今天突然发现!........................... 请问int 和 Integer类有什么区别? 求助: SqlServer的连接池怎么那么慢?各位大虾帮帮忙,不尽感激 为了编译.java文件,应放在什么目录? spark+openfire 关于java网络编程的问题 如何传递一个有图片,有声音的网页给一个本地端口!!!SOS!!! 日期转换的问题给我看下:
<%@ 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的情况下才会报错。
是不是我的连接池配置有错呢??
如果你按F5的速度快到程序还没有执行到conn.close()时,就重新向服务器发出请求时候是否会发生这种问题呢?仅仅是猜测.
...
}catch(Exception e){
...
}finally {
try{
conn.close();
} catch(Exception ex) {}
}
前面有几位老大已经说过了要
finally {
try{
conn.close();
} catch(Exception ex) {}
}
否则你catch到问题,或者没执行完,conn.close()不执行的阿
如果一次http connection 还没结束(jsp没运行结束),客户强行断开连接时,测试连接数会增加,但长时间不会释放?根本就没有释放的时候,为什么呢?