问题描述
我的连接字符串是这样写个DataSourceds=(DataSource)ctx.lookup("java:comp/env/jdbc/S65FC8ABNPA");conn=ds.getConnection();conn.setTransactionIsolation(1);且在finally中全部释放finally{if(connDb2!=null){connDb2.close();}if(connDb2Ext!=null){connDb2Ext.close();}}目前访问as/400时遇到如下问题请各位大大帮助解决一下:假设我设置连接池最大数目为20,在一个页面的Action.ActionForward中各种方法若调用getConnection()超过20次就将连接池20的上限用完了,系统将报错timeout,但是这些getConnection()用完之后我一定是close()的,1.为什么没有释放掉?2.为什么其他方法在getConnection()时不会重复利用已释放作业进程.3.是我的代码有问题吗?4.MVC模式下是否可以单例维持唯一的DataSource或Connection?或者各位大大有什么好的办法,另外同样的代码访问DB2或者SQLServer均没有问题,且websphere6.1.0时好像也没有问题,升级到6.1.25出现此类问题.奇怪了.全部分数捐献谢谢各位!
时间: 2024-09-20 00:19:14