dbcp的销毁
使用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的销毁的更多相关文章
- 【Java EE 学习 16 上】【dbcp数据库连接池】【c3p0数据库连接池】
一.回顾之前使用的动态代理的方式实现的数据库连接池: 代码: package day16.utils; import java.io.IOException; import java.lang.ref ...
- DBCP数据源连接池实现原理分析
前些天在调试公司系统的时候发现这样的一个问题:mysql数据库服务停止一段时间后再次重启后吗,tomcat服务无法请求数据库服务,调试了半天对这个问题进行定位解决,期间也搞了很多有关mysql数据库的 ...
- [数据库连接池] Java数据库连接池--DBCP浅析.
前言对于数据库连接池, 想必大家都已经不再陌生, 这里仅仅设计Java中的两个常用数据库连接池: DBCP和C3P0(后续会更新). 一. 为何要使用数据库连接池假设网站一天有很大的访问量,数据库服务 ...
- [转] DBCP 的validationQuery
原文地址:http://blog.csdn.net/fgakjfd/article/details/5600462 网上很多评论说DBCP有很多BUG,但是都没有指明是什么BUG,只有一部分人说数据库 ...
- 数据库连接池dbcp基本配置
DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件.单独使用dbcp需要2个包: com ...
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比《转》
简介 使用评价 项目主页 DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 可以设置最大和最小连接,连接等待时 ...
- dbcp基本配置和重连配置 -- mysql 8小时自动断开连接的问题
1. 引入dbcp (选择1.4) Java代码 com.alibaba.external jakarta.commons.dbcp 1.4 2. dbcp的基本配置 相关配置说明: initia ...
- 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较
简介 项目主页 使用评价 DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 http://homepages.nild ...
- DBCP连接池介绍
DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4. DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 ...
随机推荐
- USB驱动程序之概念介绍学习笔记
现象:把USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能 ...
- Entity Framework API介绍 -- DbSet<>().Find()
过去我们常常使用Where或First(FirstOrDefault)方法来查找对应的实体,比如: var query = context.CertInfoMakeDetails.ToList().W ...
- 移动终端App测试点归纳
以下所有测试最后必须在真机上完整的执行. 1 安装.卸载测试 1.1 在真机上.第三方软件(xy苹果助手.91.安卓助手)的安装与卸载 1.2 安装在手机卡上 或 SD卡上 (不同的IOS和安卓版本) ...
- Java语言主要特点有哪些?
1.简单 Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了.Java语言的简单性主要体现在以下三个方面: 1) Java的风格类似于C++,因而C++程序员是非常熟悉的.从某 ...
- HTTP接口开发专题一(四种常见的 POST 提交数据方式对应的content-type取值)
application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了.浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 app ...
- C# Data Parse
一.DateTime 方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss 方法二:Convert.ToDateTime( ...
- mongodb Java(八)
package com.mongodb.text; import java.net.UnknownHostException; import com.mongodb.DB; import com.mo ...
- leetcode844
class Solution { public: bool backspaceCompare(string S, string T) { stack<char> ST1; ; i < ...
- 详解Vue2.0生命周期
网上已经有很多关于vue生命周期的文章,我的这篇文章的由来,其实是我对官网上描述的一句话的思考与理解:“el被新创建的vm.$el替换”,所以文章更多的内容可能是在对vue生命周期中“created ...
- Java 循环遍历删除set list中的元素
删除List和Set中的某些元素 错误代码的写法: Set<String> set = new HashSet<String>(); set.add("aaaaaa& ...