From 7e75e5ca8298ffa23a4b6b384c6a122afc94da0b Mon Sep 17 00:00:00 2001 From: zyyang Date: Fri, 27 Nov 2020 15:56:38 +0800 Subject: [PATCH] change --- .../com/taosdata/demo/ConnectionPoolDemo.java | 28 +++++++++++-------- .../taosdata/demo/pool/HikariCpBuilder.java | 7 +++++ 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/tests/examples/JDBC/connectionPools/src/main/java/com/taosdata/demo/ConnectionPoolDemo.java b/tests/examples/JDBC/connectionPools/src/main/java/com/taosdata/demo/ConnectionPoolDemo.java index 79c0aacea7..0957af19d6 100644 --- a/tests/examples/JDBC/connectionPools/src/main/java/com/taosdata/demo/ConnectionPoolDemo.java +++ b/tests/examples/JDBC/connectionPools/src/main/java/com/taosdata/demo/ConnectionPoolDemo.java @@ -13,6 +13,7 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class ConnectionPoolDemo { @@ -22,9 +23,9 @@ public class ConnectionPoolDemo { private static int batchSize = 10; private static int sleep = 1000; - private static int poolSize = 50; + private static int connectionPoolSize = 50; private static int tableSize = 1000; - private static int threadCount = 50; + private static int threadPoolSize = 50; private static String poolType = "hikari"; @@ -40,8 +41,8 @@ public class ConnectionPoolDemo { if ("-sleep".equalsIgnoreCase(args[i]) && i < args.length - 1) { sleep = Integer.parseInt(args[++i]); } - if ("-poolSize".equalsIgnoreCase(args[i]) && i < args.length - 1) { - poolSize = Integer.parseInt(args[++i]); + if ("-connectPoolSize".equalsIgnoreCase(args[i]) && i < args.length - 1) { + connectionPoolSize = Integer.parseInt(args[++i]); } if ("-tableSize".equalsIgnoreCase(args[i]) && i < args.length - 1) { tableSize = Integer.parseInt(args[++i]); @@ -49,14 +50,18 @@ public class ConnectionPoolDemo { if ("-poolType".equalsIgnoreCase(args[i]) && i < args.length - 1) { poolType = args[++i]; } + if ("-threadPoolSize".equalsIgnoreCase(args[i]) && i < args.length - 1) { + threadPoolSize = Integer.parseInt(args[++i]); + } } if (host == null) { System.out.println("Usage: java -jar XXX.jar " + "-host " + "-batchSize " + "-sleep " + - "-poolSize " + + "-connectionPoolSize " + "-tableSize " + + "-threadPoolSize " + "-poolType "); return; } @@ -64,33 +69,34 @@ public class ConnectionPoolDemo { DataSource dataSource; switch (poolType) { case "c3p0": - dataSource = C3p0Builder.getDataSource(host, poolSize); + dataSource = C3p0Builder.getDataSource(host, connectionPoolSize); break; case "dbcp": - dataSource = DbcpBuilder.getDataSource(host, poolSize); + dataSource = DbcpBuilder.getDataSource(host, connectionPoolSize); break; case "druid": - dataSource = DruidPoolBuilder.getDataSource(host, poolSize); + dataSource = DruidPoolBuilder.getDataSource(host, connectionPoolSize); break; case "hikari": default: - dataSource = HikariCpBuilder.getDataSource(host, poolSize); + dataSource = HikariCpBuilder.getDataSource(host, connectionPoolSize); poolType = "hikari"; } logger.info(">>>>>>>>>>>>>> connection pool Type: " + poolType); - init(dataSource); - ExecutorService executor = Executors.newFixedThreadPool(threadCount); + ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(threadPoolSize); while (true) { executor.execute(new InsertTask(dataSource, dbName, tableSize, batchSize)); + logger.info("thread pool size : " + executor.getPoolSize() + ", active pool size: " + executor.getActiveCount()); if (sleep > 0) TimeUnit.MILLISECONDS.sleep(sleep); } } private static void init(DataSource dataSource) { + try (Connection conn = dataSource.getConnection()) { execute(conn, "drop database if exists " + dbName + ""); execute(conn, "create database if not exists " + dbName + ""); diff --git a/tests/examples/JDBC/connectionPools/src/main/java/com/taosdata/demo/pool/HikariCpBuilder.java b/tests/examples/JDBC/connectionPools/src/main/java/com/taosdata/demo/pool/HikariCpBuilder.java index 87f1f4ad2c..6ba43cd563 100644 --- a/tests/examples/JDBC/connectionPools/src/main/java/com/taosdata/demo/pool/HikariCpBuilder.java +++ b/tests/examples/JDBC/connectionPools/src/main/java/com/taosdata/demo/pool/HikariCpBuilder.java @@ -16,6 +16,13 @@ public class HikariCpBuilder { config.setMaximumPoolSize(poolSize); config.setMinimumIdle(poolSize); + + config.setMinimumIdle(3); + config.setMaximumPoolSize(500); + config.setMaxLifetime(2000000); + config.setConnectionTimeout(30000); + config.setIdleTimeout(30000); + HikariDataSource ds = new HikariDataSource(config); return ds; } -- GitLab