维护公司一个项目,使用WSAD开发,与oracle交互的一个信息查询系统,开发的时候就遇到警告:
7d24cad5 SharedPool I J2CA0086W: 在本地事务包含边界中使用的资源 jdbc/dbName 的可分享连接 MCWrapper id 9024ad6 Managed connection com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl@28558af8 State:STATE_TRAN_WRAPPER_INUSE
一直没引起重视,以为是正常的。我更新了一个模块传上去不久,用户反应过来说服务器越来越慢,查看了控制台和日志,唯一不正常的还是这个警告,搜索下资料,得到答案:
当日志中出现 J2CA0086W 时,要检查程序中管理数据库连接的方法。
Websphere中最好的办法是在已经取得一个连接的情况下,在没有关闭它之前不要取第二个连接,也就是要顺序处理连接,否则的话,websphere的本地事务处理规则会把它们放到shared pool中,连接数量有限的情况下会导致系统中大量的线程等待连接,造成性能急剧下降。
所以:websphere中的进行数据库编程,一定要注意数据库获取连接的问题,因为websphere有自己的本地事务处理规则。
感谢此blog:http://www.liulc.com/oblog/more.asp?name=llc&id=193提供的帮助