jsp中的数据库连接问题(在线等)
我的数据库连接得到Connection conn;然后
String sqlString = "select * from forum";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sqlString);
while(rs.next())
{
topic = rs.getString("topic");
content = rs.getString("content");
}
stmt.close();
conn.close();
问题是在DOS命令行中用netstat -a 打开看到并没有关掉啊
TCP 608-ml:ms-sql-s 608-ml:1601 ESTABLISHED
TCP 608-ml:ms-sql-s 608-ml:1602 ESTABLISHED
TCP 608-ml:ms-sql-s 608-ml:1603 ESTABLISHED
TCP 608-ml:1601 608-ml:ms-sql-s ESTABLISHED
TCP 608-ml:1602 608-ml:ms-sql-s ESTABLISHED
TCP 608-ml:1603 608-ml:ms-sql-s ESTABLISHED
以上是打开的端口,问题是每次打开都会打开新的,一段时间后服务器就不能承受了,也不在相应,那位大侠能否指导指导,不胜感激。
问题点数:0、回复次数:9Top
1 楼soloxiao(红色孤独)回复于 2003-11-03 15:40:23 得分 0
我的运行结果比你的更多,但不会出现服务器就不能承受,而且速度还可以,
你试一下conn=nullTop
2 楼joachimz(joachimz)回复于 2003-11-03 15:51:28 得分 0
把ResultSet页关掉!
但可能真正的资源释放要到VM做GC的时候才完成,这并不奇怪!最好还是使用连接池!Top
3 楼zxl19790710(雪龙)回复于 2003-11-03 15:52:02 得分 0
rs.closeTop
4 楼realby(忽然睡了)回复于 2003-11-03 15:53:38 得分 0
酱子写:
public void closeDB(){
try {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (conn != null) {
conn.close();
conn = null;
}
}
catch (SQLException e) {
System.out.println("SQLException: " + e.getMessage());
}
}Top
5 楼liuyi8903(不让疑问伴随)回复于 2003-11-03 16:03:54 得分 0
在DB操作时,
你必须按照打开时的相反顺序来关闭资源
照你上面的应为:
finally{
if(rs != null){
try{
rs.close();
}catch(Exception e){}
}if(stmt != null){
try{
stmt.close();
}catch(Exception e){}
}if(conn != null){
try{
conn.close();
}catch(Exception e){}
}Top
6 楼zhangmailong(冻雨)回复于 2003-11-03 17:00:14 得分 0
我把所有的ResultSet,Statement全关掉了,Connection也释放了,我用的已经是连接池了。
结果还是这样,到底是为什么啊,谁能帮我啊,救命啊,不然我交不了差了,好多人现在在访问我的网站啊,几乎一天象那样的端口就会开出几千个来,tomcat承受不了了,改用weblogic
却发现我的javaBean不能找到Top
7 楼Aileenwyh(碧云天)回复于 2003-11-03 17:30:03 得分 0
最好在连接池里配置资源连接数据库。
就算你释放可所有的资源,但是很都人同时访问你的网站,有conn等在不停地产生,那么产生上面的进程就是很自然的事情了。Top
8 楼jamesfay(狒狒)回复于 2003-11-03 17:31:34 得分 0
定时重启Top
9 楼zhangmailong(冻雨)回复于 2003-11-03 21:22:49 得分 0
问题是我在本机试的时候只要把那个网页打开一次就会出现这样的问题,本来Statement是可以被自动回收的,而且ResultSet也可以不释放,当释放Statement时同时也被释放了。现在释放喝不释放一个样,只有定义了一个Statement就会产生一个进程,为什么关不掉啊,是不是服务器的问题,我用的是tomcat 4.1.0版,有没有人也遇到过这样的问题啊Top




