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. Volley : "参数param:{ inoutNo:inoutNo ,whcode:’’}

    private void fuzzySearch() { mRequestQueue = Volley.newRequestQueue(getActivity()); String str = Sha ...

  2. memcached缓存雪崩现象及解决办法

    1)什么是缓存雪崩?场景:一个访问很大的文章(论坛之类)的网站,使用memcached缓存用户查询过的文章.设置的缓存过期时间为6小时,所以没过6小时,缓存就会失效并重建一遍 问题:过六小时时,一部分 ...

  3. 集成框架jar包的一些选择

    我们往往在官网上下载了框架需要的jar却不知道该导入什么. required包里面的是必须导入的jar jar应该一切从简

  4. BZOJ 1202 狡猾的商人

    前缀和+带权并查集. #include<iostream> #include<cstdio> #include<cstring> #include<algor ...

  5. BZOJ 3306 树

    dfs序建线段树+分类讨论+写的有点长. #include<iostream> #include<cstdio> #include<cstring> #includ ...

  6. 【C#学习笔记】从粘贴板复制文本

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. log4j配置文件详细解释

    web.xml中配置启动log4j的配置 <!-- webAppRootKey进行配置,这里主要是让log能将日志写到对应项目根目录下 --> <!-- 定义以后,在Web Cont ...

  8. JS面向对象组件(六) -- 拖拽功能以及组件的延展

    HTML部分 <div id="div1"></div> <div id="div2"></div> CSS部分 ...

  9. Datawindow.net+access数据窗口制作方法

    1) 数据字典:采用SQLServer桌面程序来创建数据字典.配置正确的pbl文件生成输入列表. 在SQLServers查询器中执行select * from pbcatedt where pbe_n ...

  10. AsciiDoc

    AsciiDoc Text based document generation AsciiDoc Home Page Table of Contents Introduction Overview a ...