博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试发现commons-dbcp2没有缓存Connection对象
阅读量:2393 次
发布时间:2019-05-10

本文共 8451 字,大约阅读时间需要 28 分钟。

由于项目需要用到DataSource,自然而然想到的就是apache的comments-dbcp!因为用的是JDK7,自然而然引用的就是commons-dbcp2-2.1.1.jar。在使用的过程中想到了之前写的一个测试redis.clients.jedis.JedisPool的代码,就把直接拿过来修改一下跑了一下,结果发现Connection对象没有缓存到池中!!!!

首先检测自己的代码,继续查找原因……始终结果一样!

最后想到了换成1.4版本的,测试结果是预期想要的!

现贴出测试代码请各位替我把把关!

public class BasicDataSourceForMysqlTest {    private static final String url = "jdbc:mysql://127.0.0.1:3306/test";    private static final String username = "root";    private static final String password = "";    private static final String driverClassName = "com.mysql.jdbc.Driver";    private static org.apache.commons.dbcp2.BasicDataSource dataSource;    /*dataSource = new BasicDataSource();        dataSource = new BasicDataSource();        dataSource.setDriverClassName(driverClassName);        dataSource.setUrl(url);        dataSource.setUsername(username);        dataSource.setPassword(password);        dataSource.setInitialSize(5);        dataSource.setMaxIdle(5);        dataSource.setMinIdle(5);        dataSource.setValidationQuery("select 1;");*/    static {        java.util.Properties props = new java.util.Properties();        props.put("driverClassName", driverClassName);        props.put("url", url);        props.put("username", username);        props.put("password", password);        props.put("minIdle", 5);        props.put("mzxIdle", 5);        props.put("maxActive", 5);        props.put("initialSize", 5);        props.put("logAbandoned", true);        props.put("removeAbandoned", true);        props.put("maxWait", 500);        props.put("validationQuery", "select 1;");        try {            dataSource = org.apache.commons.dbcp2.BasicDataSourceFactory.createDataSource(props);        } catch (Exception e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        final java.util.Set
set = new java.util.HashSet<>(); int count = 0; while (count <= 10) { int num = 5; final java.util.concurrent.CountDownLatch startSignal = new java.util.concurrent.CountDownLatch(num); try { Thread.sleep(600); } catch (InterruptedException e1) { e1.printStackTrace(); } for (int i = 0; i < num; i++) { new Thread("testThread_" + (i + 1)) { @Override public void run() { try { startSignal.countDown(); java.sql.Connection client = dataSource.getConnection(); set.add(client.hashCode() + ""); try { System.out.println(getName() + "__" + dataSource.getNumActive() + "---" + dataSource.getNumIdle() + "---" + dataSource.getInitialSize()); System.out.println(client.hashCode()); } finally { client.close(); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } try { startSignal.await(); } catch (InterruptedException e) { } System.out.println("start " + count); try { Thread.sleep(1000); } catch (InterruptedException e) { } count++; } System.err.println("Over ... " + set.toString() + "_____" + set.size()); try { dataSource.close(); } catch (java.sql.SQLException e) { e.printStackTrace(); } }
org.apache.commons
commons-dbcp2
2.1.1
mysql
mysql-connector-java
5.1.38

1.4版本的测试结果,也是预期测试结果!

start 0testThread_3__2---0---0testThread_4__2---0---0223589918510850432testThread_5__1---2---064319410testThread_2__1---3---0131974647testThread_1__1---4---01894768425testThread_1__2---1---01894768425testThread_3__3---1---0testThread_2__3---1---064319410start 1131974647testThread_4__1---3---0510850432testThread_5__1---4---0223589918testThread_1__2---2---0testThread_2__2---2---0510850432testThread_4__3---2---0223589918131974647start 2testThread_5__1---3---0510850432testThread_3__1---4---0131974647testThread_2__3---1---0testThread_3__3---1---0223589918testThread_1__3---1---0131974647start 3testThread_4__4---1---064319410510850432testThread_5__1---4---0223589918testThread_2__3---1---0testThread_3__3---1---064319410testThread_1__3---1---0510850432223589918start 4testThread_4__3---1---0131974647testThread_5__2---3---01894768425testThread_2__2---2---0testThread_1__2---2---01894768425131974647testThread_3__3---2---0223589918start 5testThread_4__1---3---0131974647testThread_5__1---4---01894768425testThread_2__1---1---0131974647testThread_1__2---1---01894768425testThread_4__2---2---0223589918start 6testThread_5__1---3---0131974647testThread_3__1---4---0510850432testThread_2__2---2---0131974647testThread_1__2---2---0510850432testThread_3__2---3---0223589918start 7testThread_4__2---3---0510850432testThread_5__2---3---0223589918testThread_1__1---1---0223589918testThread_2__2---1---01894768425testThread_4__2---1---0testThread_3__3---1---0510850432start 8testThread_5__2---3---0223589918131974647testThread_2__2---2---0testThread_1__2---2---0131974647223589918testThread_3__1---3---0510850432start 9testThread_4__1---3---0223589918testThread_5__1---4---0131974647testThread_2__2---1---0223589918testThread_1__2---1---0131974647testThread_3__2---2---0510850432start 10testThread_5__2---2---01894768425testThread_4__1---4---064319410Over ... [1894768425, 64319410, 223589918, 131974647, 510850432]_____5

2.1和2.1.1的测试结果

start 0testThread_2__4---0---01510417198testThread_3__4---0---01664207618testThread_1__4---0---0177655599testThread_4__4---0---0855383063testThread_5__1---4---0624427163start 1testThread_1__5---0---0509459080testThread_3__5---0---0461456971testThread_2__5---0---01143862280testThread_4__2---3---01923254538testThread_5__1---4---0215165522testThread_2__3---2---01337836835testThread_1__3---2---0869901755testThread_3__4---1---0370127509start 2testThread_4__2---3---01620402051testThread_5__1---4---01857143550testThread_2__4---1---01213238765start 3testThread_3__4---1---01369335764testThread_1__4---1---0546695090testThread_5__3---2---01493347140testThread_4__4---0---01991424296testThread_1__4---1---01703954167start 4testThread_2__3---2---01663252024testThread_3__3---2---0492942072testThread_4__3---2---02032977625testThread_5__1---4---01707791737testThread_2__4---1---01235983733testThread_1__4---1---0569283100testThread_3__3---2---01279460130start 5testThread_4__2---3---01641427189testThread_5__1---4---0891836161testThread_1__3---2---01637289197start 6testThread_3__4---1---064081321testThread_5__4---1---0431404444testThread_2__3---2---0709698036testThread_4__1---4---01076326904testThread_1__4---1---02022316086testThread_3__4---1---0842776333start 7testThread_4__3---2---0670897142testThread_5__2---3---0279713436testThread_2__2---3---01471810322testThread_1__4---1---01134728957testThread_3__4---1---01734794939testThread_2__4---1---0313064454start 8testThread_4__3---2---01772550211testThread_5__2---4---0190755917testThread_2__4---1---0testThread_3__4---1---010277387531256624859testThread_1__4---1---01739820615start 9testThread_4__4---1---0994248850testThread_5__2---3---0437312607testThread_1__3---2---0348190607testThread_3__3---2---0testThread_2__3---1---0testThread_4__4---1---01691184586287765893start 10637816509testThread_5__1---4---02138472547Over ... [1471810322, 287765893, 1703954167, 2138472547, 1510417198, 624427163, 1739820615, 891836161, 492942072, 64081321, 437312607, 370127509, 1027738753, 1664207618, 709698036, 215165522, 569283100, 1663252024, 1337836835, 279713436, 546695090, 1637289197, 1707791737, 509459080, 1076326904, 1213238765, 1279460130, 177655599, 637816509, 1620402051, 1235983733, 1256624859, 431404444, 348190607, 461456971, 1772550211, 842776333, 994248850, 1991424296, 1734794939, 1641427189, 1143862280, 1923254538, 869901755, 1369335764, 855383063, 1691184586, 1493347140, 313064454, 1134728957, 190755917, 2022316086, 1857143550, 2032977625, 670897142]_____55

 

转载于:https://my.oschina.net/u/1250501/blog/909222

你可能感兴趣的文章
[转]C语言系统资源控制(getrlimit && setrlimit)
查看>>
[转]linux文件系统基础知识
查看>>
[转]Centos5 下安装/配置lvm使用reiserfs文件系统
查看>>
[转]Use ReiserFS in CentOS 5(lvm)
查看>>
[转]KFS的部署与简单使用
查看>>
[转]KFS官方部署手册
查看>>
[转]Ubuntu 10.04 LTS 安装 sun-java6-jdk
查看>>
[转]mmap详解
查看>>
[转]HDFS和KFS 比较
查看>>
Oracle 12CR2 Oracle Restart - ASM Startup fails with PRCR-1079
查看>>
poj 2140 Herd Sums
查看>>
poj 2524 Ubiquitous Religions
查看>>
poj 1611 The Suspects
查看>>
poj 3331 The Idiot of the Year Contest!
查看>>
poj 3233 Matrix Power Series
查看>>
poj 3070 Fibonacci
查看>>
poj 1656 Counting Black
查看>>
BestCoder Round #28
查看>>
poj1845 Sumdiv
查看>>
poj3299 Humidex
查看>>