使用commons-dbcp-1.2.2.jar的DataSource,发现每次动态编译后连接池中的连接不会释放,新的连接池建立有mssql多出一组连接,只有重新启动tomcat或weblogic才可以释放。

package aaplan.dbutil;

import java.io.InputStream;
import java.util.Properties; import java.sql.*; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; public class JdbcUtil { private static DataSource dataSource=null;
/**
* @param args
*/ public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
public static DataSource getDataSource() {
return dataSource;
}
public static void release() {
if(dataSource !=null){
try {
((org.apache.commons.dbcp.BasicDataSource)dataSource).close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
static{
try{
Properties properties=new Properties();
InputStream inputStream= JdbcUtil.class.getClassLoader().getResourceAsStream("dbcp.properties");
properties.load(inputStream);
inputStream.close();
dataSource =BasicDataSourceFactory.createDataSource(properties); System.out.println(dataSource);
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException("JdbcUtil Init Error!"); } } }
package aaplan.dbutil;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener; /**
* Application Lifecycle Listener implementation class DataSorceMgrListener
*
*/
public class DataSorceMgrListener implements ServletContextListener { /**
* Default constructor.
*/
public DataSorceMgrListener() {
// TODO Auto-generated constructor stub
} /**
* @see ServletContextListener#contextInitialized(ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Init context!");
JdbcUtil.getDataSource();
} /**
* @see ServletContextListener#contextDestroyed(ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("Destoryed Context!");
JdbcUtil.release();
} }

解决,写了个ServerContextListener,在里面的Destroyed中人工释放

下载

dbcp的销毁的更多相关文章

  1. 【Java EE 学习 16 上】【dbcp数据库连接池】【c3p0数据库连接池】

    一.回顾之前使用的动态代理的方式实现的数据库连接池: 代码: package day16.utils; import java.io.IOException; import java.lang.ref ...

  2. DBCP数据源连接池实现原理分析

    前些天在调试公司系统的时候发现这样的一个问题:mysql数据库服务停止一段时间后再次重启后吗,tomcat服务无法请求数据库服务,调试了半天对这个问题进行定位解决,期间也搞了很多有关mysql数据库的 ...

  3. [数据库连接池] Java数据库连接池--DBCP浅析.

    前言对于数据库连接池, 想必大家都已经不再陌生, 这里仅仅设计Java中的两个常用数据库连接池: DBCP和C3P0(后续会更新). 一. 为何要使用数据库连接池假设网站一天有很大的访问量,数据库服务 ...

  4. [转] DBCP 的validationQuery

    原文地址:http://blog.csdn.net/fgakjfd/article/details/5600462 网上很多评论说DBCP有很多BUG,但是都没有指明是什么BUG,只有一部分人说数据库 ...

  5. 数据库连接池dbcp基本配置

    DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件.单独使用dbcp需要2个包: com ...

  6. DBCP、C3P0、Proxool 、 BoneCP开源连接池的比《转》

     简介   使用评价  项目主页  DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 可以设置最大和最小连接,连接等待时 ...

  7. dbcp基本配置和重连配置 -- mysql 8小时自动断开连接的问题

    1. 引入dbcp (选择1.4) Java代码   com.alibaba.external jakarta.commons.dbcp 1.4 2. dbcp的基本配置 相关配置说明: initia ...

  8. 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较

    简介 项目主页 使用评价  DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 http://homepages.nild ...

  9. DBCP连接池介绍

    DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4. DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 ...

随机推荐

  1. common-lang3-version.jar 提供java.lang的扩展功能

    Apache Commons Lang 3.6 API

  2. Linux系统性能检测

    转自:http://www.cnblogs.com/itech/archive/2011/06/08/2075145.html 一 .uptime uptime命令用于查看服务器运行了多长时间以及有多 ...

  3. SQL Server 2005/2008压缩数据库日志的方法

    适用于SQL Server 2005的方法 Backup Log DNName WITH no_log GO DUMP TRANSACTION DNName WITH no_log GO USE DN ...

  4. python 之 functools模块

    functools模块用于高阶函数:作用于或返回其他函数的函数.一般而言,任何可调用对象都可以作为本模块用途的函数来处理. 官方文档已经有了详尽的介绍,这里就不在复述,详情请见:官方文档 .这里主要介 ...

  5. OD 实验(十九) - 对多态和变形程序的逆向

    程序: 这个窗口显示这是一个需要去除的 Nag 窗口 点击“确定” 用 PEiD 看一下 这是一个用汇编语言写的程序 逆向: 用 OD 载入程序 Nag 窗口的标题和文本 右键 -> 查找 -& ...

  6. Julia - 字符串

    字符 字符使用单引号括起来,字符是 32 位整数 julia> 'a' 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase) ju ...

  7. 【转】Android开发笔记——圆角和边框们

    原文地址:http://blog.xianqu.org/2012/04/android-borders-and-radius-corners/ Android开发笔记——圆角和边框们 在做Androi ...

  8. Drools简单例子

    转自:http://www.blogjava.net/diggbag/articles/359347.html 1.Drools简单例子 首先是搭建一个可供进行Drools开发的框架.Jboss官方推 ...

  9. 自己动手实现XXX系列

    前记: 最近看了rongjun的一片文章:自己动手实现jdk代理类.按照上面的例子敲完才发现,JDK动态代理 实现底层原来如此简单,只是大量的使用了反射,类编译,类加载一些常规的东西 而且本质也是如实 ...

  10. python中nltk的下载安装方式

    首先去http://nltk.org/install.html下载相关的安装程序,然后 在cmd窗口中,进入到python的文件夹内的 Scripts内,运行easy_install pip 安装Py ...