本文共 554 字,大约阅读时间需要 1 分钟。
项目使用websphere服务器,本地搭建项目的时候was服务区设置的数据库连接池属性:超时时间为180s,最小连接数为1最大连接数为10;为了实现批量删除的功能,在代码中一处要获取连接,执行查询,使用查询后的参数为bean赋值,完成其deleteSql,将deleteSQl存放于List中,之后执行批量删除.
问题描述 :问题出在获取连接执行查询一处,因为项目中一个bean对应一个数据库表;而beanDB中包含着该表的query(),getByPK(),delete(),update()等方法; 要删除前台传来的checkbox的一系列值就需要依次为bean获取deleteSQL,所以需要getConnection(),当数据大于10之后,发现程序卡住,之后(180s)后报错,没有可用的连接, 异常CreateOrwaitConnectionException,后来上网查发现web.xml中配置的 Shareable属性,对于was服务器而言就会使连接池中的连接不被释放,所以造成了没有可用连接的问题; 解决方法: 1.如果可以修改Shareable属性为Unshareable,可以修改之 2.不使用连接来获取bean,适用new bean+ setXX()(对我自己的项目而言) 3.见参考
转载地址:http://txwji.baihongyu.com/