当前位置:  技术问答>java相关

关于连接池释放问题.........?

    来源: 互联网  发布时间:2017-03-31

    本文导语:  CDbUtil.java    (设置连接池及一些执行SQL语句操作) ............ 以连接池方式打开库            public Connection getConnection() throws Exception {         try{             //根据运行方式决定获取Connection的...

CDbUtil.java    (设置连接池及一些执行SQL语句操作)
............
以连接池方式打开库  
         public Connection getConnection() throws Exception {

        try{
            //根据运行方式决定获取Connection的方法
            if (this.byJsp) {                           //通过jsp运行的话,从ConnectionPool获得
                this.printWarn("现在按默认JSP方式运行!");
                if (ds==null) {
                    Context context = new InitialContext();
                    ds = (DataSource)context.lookup("java:/CapPool");
                }
                if (connection==null) connection = ds.getConnection() ;
            }
            else {                                      //直接运行的
                this.printWarn("现在按直接方式运行!");
                if (connection==null) {
                    Class.forName(this.SQLDriver);
                    connection = DriverManager.getConnection(this.SQLURL);
                }
            }
            this.print("getConnection is ok!");
        }catch(Exception e){
            this.setLastError(e.getMessage());
            this.printError();
            throw e;
        }
        return connection;
    }
.............
-----------------------------------------------
CPublic.java ( 放一些通用的数据库存操作)

.............
调用 CDbUtil里的连接数据库
    public CPublic() {
        dbUtil = new CDbUtil();
                try{
                    dbUtil.getConnection() ;
                    }
                catch(Exception e)
                   {
                     e.printStackTrace() ;
                   }
    }

。。。。。。。。。
调用 CDbUtil里的关闭数据库
    public void closeConnection() throws CZyException{
        try {
            dbUtil.closeConnection();
        }
        catch (Exception e) {
            throw new CZyException("关闭数据库连接失败");
        }
    }

    public static String valueOf(String value,String defaultValue) {
        if (value==null) return defaultValue;
        else return value;
    }
...............

------------------------------------
存在问题:连接池不能自动释放,如jsp程序调用cpublic时,需用cpublic里的closeConnection()来关闭连接
是不是程序在设计过程中出现了什么问题? 

|
当然,只有关闭连接才能释放

|
采用Wrap的设计模式将Connection包装一层,覆盖finalize方法在这个方法里面实现Connection close/release的方法。这样由JVM可以帮你回收,这只是一个防范的方法, 最好还是在程序中显式的关闭。

|
还是手动释放连接的好。
依靠容器来自动的话(假设容器已经可以判断出这个连接已经无效)其实也并不是你用完这个以后马上就可以确认的

|
http://www-900.ibm.com/developerWorks/cn/java/l-connpoolproxy/index.shtml

    
 
 

您可能感兴趣的文章:

  • 连接池不能释放,
  • 关于数据库连接内存释放的问题?
  • 高手支招:TCP掉线重新连接,资源的释放问题?
  • Oracle连接数过多释放机制
  • [求教]:NFS的连接问题.做NFS时报连接错误,据称是portmap问题,但...
  • ftp连接问题,就是linux连接windows ftp的问题,高手请进(在线等待)!!!!!
  • 在线请教:linux下用MySQL C API 连接MySQL 4.1.12出现的连接问题,提示升级客户端!!!!!!
  • 动态连接库和静态连接库的问题 在线等待.......!!!
  • 一个连接池使用的问题:这种写法没用上连接池?
  • 我用JBuilder 7连接局域网内一ORACLE 9( 在本机可以连接)的问题?
  • 程序发布的问题(动态连接库的问题)
  • 在jbuilder中调用一bean连接数据库没有问题,在jsp中调用就连接不上数据库
  • linux问题 secureCRT连接的问题 在线等急!~~
  • 文件连接问题
  • linux vsftpd连接问题
  • 数据库连接的问题
  • 关于远程连接lunx的问题
  • tcp连接的问题
  • 程序连接问题!
  • windows 客户机连接 samba 的权限问题, 急啊 ....
  • Web服务器/前端 iis7站长之家
  • 关于连接共享的问题, 请帮忙
  • 连接池问题
  • 关于LINUX SOCKET连接CPU占用问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 什么是socket的长连接,以及如何实现长连接,长连接和短连接有什么区别?
  • 如何在windows上远程连接centOS桌面
  • 建立长连接的SOCET通讯后,如何检查长连接的有效性,如何获知连接状态
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • Oracle 表连接方式(内连接/外连接/自连接) 详解
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • 关于inetd。我做了一个测试程序,想计算ftp最多能有多少了连接,我发现当连接到1020次就不可以连接了,哪位大侠知道如何做才能将连接数量增加至10000呢??
  • php中操作memcache的类及成员列表及php下如何连接memched服务器
  • 哪位给解释一下长连接和短连接的区别?
  • mysql jdbc连接mysql数据库步骤及常见参数详解
  • ssh连接得通虚拟机,连接不通隔壁宿舍?
  • windows server2012无法连接无线网络解决方法(windows无线连接)
  • 请问unix/linux下动态连接库和静态连接库有什么区别?
  • fedora15 KDE桌面下能连接WLAN,GNOME下能搜到信号,就是连接不上,。。。。
  • linux 有线连接了却显示有线连接断开是怎么回事
  • 建立一个ftp数据连接并传送或接受完毕一些数据后,能否不关闭此数据连接,下次接着用?
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • LINUX中连接C++的库怎么连接.库在什么位置,还有什么特殊命令吗?
  • socket 断开连接如何再恢复连接
  • 请问连接本机数据库的JDBC,和连接远程的JDBC有没有区别?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3