1. 初始化连接数:默认值 0
  2. 同一时刻可分配最大连接数:默认值 8 ,设置为负数时不做限制
  3. 最大空闲连接,默认值 8 ,超出连接将被释放
  4. 最小空闲连接数,默认值 0
  5. 请求连接最大等待时间(毫秒),默认值 无限期 ,超出时间将抛出异常

conn = dataSource.getConnection(); // 时间点T1

// T1 至 T2 这段时间,该连接为活跃连接

conn.close(); // 时间点T2

// 时间点T2 之后,连接被连接池回收,如果此时idle连接超过maxIdle ,则会释放连接

case:

package cn.zno.jdbc.dbcp;

import java.sql.Connection;
import java.sql.SQLException; import javax.sql.DataSource; import org.apache.commons.dbcp2.BasicDataSource; //
// To compile this example, you'll want:
// * commons-pool-2.3.jar
// * commons-dbcp-2.1.jar
// in your classpath.
//
// To run this example, you'll want:
// * commons-pool-2.3.jar
// * commons-dbcp-2.1.jar
// * commons-logging-1.2.jar
// in your classpath.
//
public class DbcpTool { @SuppressWarnings("unused")
public static void main(String[] args) throws SQLException { DataSource dataSource = setupDataSource(); Connection conn1 = dataSource.getConnection();
printDataSourceStats(dataSource);// 活跃1 空闲0 |新建1个
conn1.close();
printDataSourceStats(dataSource);// 活跃0 空闲1 |
Connection conn2 = dataSource.getConnection();
printDataSourceStats(dataSource);// 活跃1 空闲0 |使用之前的
Connection conn3 = dataSource.getConnection();
printDataSourceStats(dataSource);// 活跃2 空闲0 |新建第2个
conn2.close();
printDataSourceStats(dataSource);// 活跃1 空闲1 |
conn3.close();
printDataSourceStats(dataSource);// 活跃0 空闲2 |
} public static DataSource setupDataSource() {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("oracle.jdbc.OracleDriver");
ds.setUrl("jdbc:oracle:thin:@//172.16.50.67:1521/orcl");
ds.setUsername("e_channel");
ds.setPassword("e_channel_test");
ds.setInitialSize(0);
ds.setMaxTotal(3);
ds.setMaxIdle(3);
ds.setMinIdle(1);
ds.setMaxWaitMillis(10000); System.out.println("MaxTotal: " + ds.getMaxTotal());
System.out.println("MaxIdle: " + ds.getMaxIdle());
System.out.println("MinIdle: " + ds.getMinIdle());
System.out.println("MaxWaitMillis: " + ds.getMaxWaitMillis());
System.out.println("set up done.\n");
return ds;
} public static void printDataSourceStats(DataSource ds) {
BasicDataSource bds = (BasicDataSource) ds; System.out.println("NumActive: " + bds.getNumActive());
System.out.println("NumIdle: " + bds.getNumIdle());
System.out.println();
} public static void shutdownDataSource(DataSource ds) throws SQLException {
BasicDataSource bds = (BasicDataSource) ds;
bds.close();
}
}

initialSize,maxTotal,maxIdle,minIdle,maxWaitMillis的更多相关文章

  1. Spark 实时计算整合案例

    1.概述 最近有同学问道,除了使用 Storm 充当实时计算的模型外,还有木有其他的方式来实现实时计算的业务.了解到,在使用 Storm 时,需要编写基于编程语言的代码.比如,要实现一个流水指标的统计 ...

  2. Spark实时案例

    1.概述 最近有同学问道,除了使用 Storm 充当实时计算的模型外,还有木有其他的方式来实现实时计算的业务.了解到,在使用 Storm 时,需要编写基于编程语言的代码.比如,要实现一个流水指标的统计 ...

  3. demo2 Kafka+Spark Streaming+Redis实时计算整合实践 foreachRDD输出到redis

    基于Spark通用计算平台,可以很好地扩展各种计算类型的应用,尤其是Spark提供了内建的计算库支持,像Spark Streaming.Spark SQL.MLlib.GraphX,这些内建库都提供了 ...

  4. Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作

    Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作 1.sparkstreaming实时写入Hbase(saveAsNewAPIHadoopDataset方法 ...

  5. jdbc线程池

    连接oracle数据库的jdbc线程池 首先建立一个properties类型的文件存放一些信息:jdbc.properties driverClassName=oracle.jdbc.driver.O ...

  6. 【转帖】置高并发jdbc连接池

    简单的MySQL连接池 <Resource type="javax.sql.DataSource" name="jdbc/TestDB" factory= ...

  7. 互联网UV,PU,TopN统计

    1. UV.PV.TopN概念 1.1 UV(unique visitor) 即独立访客数 指访问某个站点或点击某个网页的不同IP地址的人数.在同一天内,UV只记录第一次进入网站的具有独立IP的访问者 ...

  8. springboot指定redis库编号配置实现

    yml配置 spring: redis: database: #shiro host: 127.0.0.1 port: timeout: password: null redis-cache: dat ...

  9. 设计模式学习-使用go实现建造者模式

    建造者模式 定义 适用范围 与工厂模式的区别 优点 缺点 参考 建造者模式 定义 Builder 模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式. 建造者模式(Builder Patt ...

随机推荐

  1. UVa 129 Krypton Factor【回溯】

    学习的紫书的回溯,理解起来还是好困难的说啊= = #include<iostream> #include<cstdio> #include<cstring> #in ...

  2. ASP.NET vs MVC vs WebForms

    许多ASP.NET开发人员开始接触MVC认为MVC与ASP.NET完全没有关系,是一个全新的Web开发,事实上ASP.NET是创建WEB应用的框架而MVC是能够用更好的方法来组织并管理代码的一种更高级 ...

  3. Jquery源码中的Javascript基础知识(一)

    jquery源码中涉及了大量原生js中的知识和概念,文章是我在学习两者的过程中进行的整理和总结,有不对的地方欢迎大家指正. 本文使用的jq版本为2.0.3,附上压缩和未压缩版本地址: http://a ...

  4. IOS中tableView每组的头部控件、通过tableView的代理方法控制某一行的cell能否达到高亮选中状态

    一.tableView每组的头部控件 1.控件宽度默认就是tableView的宽度 2.控件高度由下面的代理方法决定 - (CGFloat)tableView:(UITableView *)table ...

  5. yaf框架流程四

    在前面的章节,在bootstrap里添加了一个benchmark插件,简单介绍下yaf的插件机制:http://yaf.laruence.com/manual/yaf.plugin.html Yaf定 ...

  6. vector & array

    private static const NUM_LOOPS:int = 15; public function VectorTest():void { var vector:Vector.<i ...

  7. mysql 优化analyze table

    Analyze Table MySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应 ...

  8. Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式( ...

  9. win7下折腾filezilla_client

    基本上参照 http://blog.csdn.net/iamoyjj/article/details/6358742 但发现这样做的话,engine 生成的 lib中死活都没idn_free 及idn ...

  10. jsonp调用实例

    首先我们来定义接口的规范,就像这样:http://www.mydomain.com/jsonp/ticker?symbol=IBM&callback=showPricesymbol是请求条件, ...