initialSize,maxTotal,maxIdle,minIdle,maxWaitMillis
- 初始化连接数:默认值 0
- 同一时刻可分配最大连接数:默认值 8 ,设置为负数时不做限制
- 最大空闲连接,默认值 8 ,超出连接将被释放
- 最小空闲连接数,默认值 0
- 请求连接最大等待时间(毫秒),默认值 无限期 ,超出时间将抛出异常
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的更多相关文章
- Spark 实时计算整合案例
1.概述 最近有同学问道,除了使用 Storm 充当实时计算的模型外,还有木有其他的方式来实现实时计算的业务.了解到,在使用 Storm 时,需要编写基于编程语言的代码.比如,要实现一个流水指标的统计 ...
- Spark实时案例
1.概述 最近有同学问道,除了使用 Storm 充当实时计算的模型外,还有木有其他的方式来实现实时计算的业务.了解到,在使用 Storm 时,需要编写基于编程语言的代码.比如,要实现一个流水指标的统计 ...
- demo2 Kafka+Spark Streaming+Redis实时计算整合实践 foreachRDD输出到redis
基于Spark通用计算平台,可以很好地扩展各种计算类型的应用,尤其是Spark提供了内建的计算库支持,像Spark Streaming.Spark SQL.MLlib.GraphX,这些内建库都提供了 ...
- Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作
Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作 1.sparkstreaming实时写入Hbase(saveAsNewAPIHadoopDataset方法 ...
- jdbc线程池
连接oracle数据库的jdbc线程池 首先建立一个properties类型的文件存放一些信息:jdbc.properties driverClassName=oracle.jdbc.driver.O ...
- 【转帖】置高并发jdbc连接池
简单的MySQL连接池 <Resource type="javax.sql.DataSource" name="jdbc/TestDB" factory= ...
- 互联网UV,PU,TopN统计
1. UV.PV.TopN概念 1.1 UV(unique visitor) 即独立访客数 指访问某个站点或点击某个网页的不同IP地址的人数.在同一天内,UV只记录第一次进入网站的具有独立IP的访问者 ...
- springboot指定redis库编号配置实现
yml配置 spring: redis: database: #shiro host: 127.0.0.1 port: timeout: password: null redis-cache: dat ...
- 设计模式学习-使用go实现建造者模式
建造者模式 定义 适用范围 与工厂模式的区别 优点 缺点 参考 建造者模式 定义 Builder 模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式. 建造者模式(Builder Patt ...
随机推荐
- 制作自己的Cydia发布源
http://patrickmuff.ch/blog/2013/02/15/create-your-own-cydia-repository-on-ubuntu/ http://www.saurik. ...
- MYSQL复制的几种模式
MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制. MYSQL复制的几种模式 MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制.简言之,这种新技 ...
- JavaScript备忘录-逻辑运算符
关于 || 和 && 运算符 var name=(document.getElementById('txtName') || '') && document.getEl ...
- 【转】Android Interface的使用
原文网址:http://www.3g-edu.org/Android_free/art115.htm Android应用程序采用Java语言编写,Java语法和C/C++有很大的相似性,但也有一些特别 ...
- hbase+hive应用场景
一.Hive应用场景本文主要讲述使用 Hive 的实践,业务不是关键,简要介绍业务场景,本次的任务是对搜索日志数据进行统计分析.集团搜索刚上线不久,日志量并不大 .这些日志分布在 5 台前端机,按小时 ...
- MySQL基础之第18章 性能优化
18.1.优化简介 SHOW STATUS LIKE ‘value’;connections 连接数uptime 启动 ...
- AndroidManifest修改重打包全过程
AndroidManifest修改重打包全过程: 作者: 蔡建良 2013-06-26 准备工具:apktool.jar和signapk.jar 下载: http://download.csdn.ne ...
- LoadRunner 各个指标分析
我们要监视CPU,内存.硬盘的资源情况.得到以下的参数提供分析的依据.%processor time(processor_total):器消耗的处理器时间数量.如果服务器专用于sql server 可 ...
- 细雨学习笔记:JMeter 的主要测试组件总结
1. 测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器. 2. 线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求.实际的请求内容在Sampler中定义, ...
- 可进行JavaScript代码测试与调试的12个网站
概述:JavaScript是网站前端开发最为重要的一门编程语言,本文收集了能够在线测试与调试JavaScript代码的12个网站 1.JS Bin JS bin是一个为JavaScript和CSS爱好 ...