如果你使用了Connection Pool,就先强Connection Pool得尺寸加大,一个是初始尺寸,还有一个是最大尺寸,根据访问量进行合理分配.还有可能是因为你在Servlet中使用Connection对象后没有将其关闭,记得在使用完毕后将其关闭.另一种情况就是数据库服务器没有做特别设置.不知道你使用得是哪一种数据库,一般较大得数据库都可以设置并发访问量,可以根据数据库类型去查阅相应资料将数据库得并发访问数改的大一些应该就可以了.
调试欢乐多
可能是这个原因吧!
我试着修改试一下
我在每个jsp页面末尾都用了一个关闭connectin的方法,还是不行;
不知道是不是weblogic盗版的原因
希望哪位高手能够帮忙
可以另外在加分
public ResultSet executeQuery(String sql){
try{
Context context=getInitialContext();
DataSource dataSource =(DataSource)context.lookup ("NM_JDBC");
conn=dataSource.getConnection();
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(Exception e){
System.out.println(e);
}finally{
connClose();
}
return rs;
}
public void connClose(){
try{
conn.close();
}catch(Exception e){}
}
我的数据库查询bean的方法就是上面的,我用了connClose()方法来关闭连接,而且在每个jsp页面均用了connClose()方法,始终关闭不了connection,结果weblogic的连接数达到最大就出问题。
如果我在上面的executeQuery方法里直接关闭用conn.close(),客户端调用时,weblogic显示连接已经关闭错误,不能进行数据库操作
不会判断当前的conn是否有效,假如另一个线程在finally块执行前进入这个函数并执行到这一句,可能会造成原来的conn泄漏
试着改成这样
if( conn != null )
conn=dataSource.getConnection();public void connClose(){
try{
conn.close();
conn = null;
}catch(Exception e){}
}
谢谢了