站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题在线急等-tomcat+sqlserver,每过几个小时就要重启一次。

在线急等-tomcat+sqlserver,每过几个小时就要重启一次。

摘要: 在线急等-tomcat+sqlserver,每过几个小时就要重启一次。


查看了日志,过一段时间之后就报数据库为空,连不上数据库了。
我想是不是数据库连接用完了,查了一下代码,使用完之后没有释放连接操作。
我不懂有数据库连接池的情况下,需不需要每申请了连接最后自己释放它?jsp页面上使用的连接会不会自己释放的?
先谢谢了!


需要释放
你从连接池获得的连接不是原始的数据库连接,是受连接池托管的连接.
只有释放连接后,连接池才知道回收原始连接


使用连接池托管连接,必须在每次使用完连接以后用con.close();语句释放连接!例如:
try {
ps = con.prepareStatement(sql);

rs = ps.executeQuery();

while (rs.next()) {
....
}
}
catch (SQLException ex) {
ex.printStackTrace();
}
finally{
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
}
catch (SQLException ex1) {
throw new Exception("数据库关闭异常!");
}
}


up


把数据库连接使用完了,还是要close,返还给连接池供其它数据库连接使用


楼主每次使用连接的时候就抄袭楼上那位星级人物代码框架好了。

还有有时候不仅仅要注意连接问题,还要注意数据库锁的问题哟~
偶遇到过死锁的,锁不够的...


谢谢各位!!程序不是我开发的,我开始还想是不是他们用了什么高级连接池不用释放了。
加上之后好象果然好点了。



哇哈哈,揭贴拉



↑返回目录
前一篇: 一道程序题
后一篇: 提供一个有用的工具