收录日期:2018/08/17 01:44:28 时间:2016/05/20 18:27:32 标签:WebSphere
各位大虾
救救我吧~!!
我用DB27.1+WAS3.5做了一个图书检索网站
对一个8万条数据的表进行检索,我得JAVA BEAN中调用完连接都是及时关闭的,WAS数据源的最大连接数设了20,而且网站访问量也不是很大,可不到几分钟,连接池就会爆满,出现无法连接数据库的故障!
哪位遇到过此类问题,或者帮我推断一下可能性也好啊~
我都快疯了!
大侠,救救我!
要多少分都没有问题!!
再次感谢!!!
你的数据连接Bean怎么写的,贴出来看看 ,有时候继承数据连接的类的话可能会有问题
给你一段代码,供你参考:

//创建参数列表以访问命名系统
Hashtable parms = new Hashtable();
parms.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.ejs.ns.jndi.CNInitialContextFactory");
// 访问命名系统
ctx = new InitialContext(parms);
// 从命名系统中获取 DataSource 工厂对象
ds = (DataSource)ctx.lookup("jdbc/ora8");
// 使用 DataSource 工厂获取数据服务器连接
Cn = ds.getConnection(MyUserID,MyPassWord);
// 创建statement
St = Cn.createStatement();
用websphere 4.0 以上吧,3.5的确是问题多多啊,你的3.5打到 sp6了嘛?
可以用websphere自带的链接池。
记得每次进行数据库操作的时候,打开你的数据库连接,然后操作完毕后,关闭你的数据库连接,这样就可以高效的使用你的数据库连接池,你所说的这种现象发生的几率也不的.
我用过was4,只要你及时关闭,就绝不会出现这种错误的。不知3.5是不是有bug.
学习!
to Martin2002:
你的意思是不是我在一个web application中,登陆以后,我将DataSource放到session中,然后每个页面中将它取出,用getConnection得到一个连接,用完以后再将它关掉?
conn = ds.getConnection()
conn.close();
这样每次都获取conn,关闭conn,这样会不会开销太大,如果不close,不存在并发的情况下到时没问题,当并发时,不知道会出现什么问题??
各位说说看
在页面中,每次使用了ResultSet 后,rs.close();,,在页面的最后,一定要statement stmt,,stmt.close(),,con.close()......这是前不久我的亲身体验,,而且从javabean中只能得到con,,,然后在页面中关闭,,,,,,
我开始做的是从javabean获取的rs,,,结果在网页上刷新几次websphere就死悄悄了,,
在页面种rs/stmt/conn,那页面岂不到处都是代码,那还得了
don't forget to put close in the finally{} block, it must be your code problem.
rs/stmt/conn都可以在bean中啊
开关动作都在bean中, 这样页面就没有什么代码了
看情况好像不是及时关闭连接的事。
我也碰到这样的事情了.烦的很.