当前位置:软件学习 > 其它软件 >>

关于访问AS/400进程作业不释放问题

我的连接字符串是这样写个
    DataSource ds=(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或者SQL Server 均没有问题,且websphere 6.1.0时好像也没有问题,升级到6.1.25出现此类问题.奇怪了.全部分数捐献

谢谢各位!



补充:企业软件 ,  WebSphere
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,