From 62991ed709724b5f384c6dd8652213a16666bdc4 Mon Sep 17 00:00:00 2001 From: microwin7 Date: Sat, 4 Sep 2021 08:51:34 +0300 Subject: [PATCH] [FIX] MySQLSourceConfig HikariCP --- .../launchserver/auth/MySQLSourceConfig.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/MySQLSourceConfig.java b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/MySQLSourceConfig.java index 459e8c38..ec9d1e60 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/MySQLSourceConfig.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/MySQLSourceConfig.java @@ -32,8 +32,8 @@ public final class MySQLSourceConfig implements AutoCloseable { private String username; private String password; private String database; - private String timeZone; - private boolean enableHikari; + private String timezone; + private boolean useHikari; // Cache private transient DataSource source; @@ -93,22 +93,26 @@ public synchronized Connection getConnection() throws SQLException { mysqlSource.setPassword(password); mysqlSource.setDatabaseName(database); mysqlSource.setTcpNoDelay(true); - if (timeZone != null) mysqlSource.setServerTimezone(timeZone); + if (timezone != null) mysqlSource.setServerTimezone(timezone); hikari = false; // Try using HikariCP source = mysqlSource; - if (enableHikari) { + if (useHikari) { try { Class.forName("com.zaxxer.hikari.HikariDataSource"); hikari = true; // Used for shutdown. Not instanceof because of possible classpath error - HikariConfig cfg = new HikariConfig(); - cfg.setDataSource(mysqlSource); - cfg.setPoolName(poolName); - cfg.setMaximumPoolSize(MAX_POOL_SIZE); + HikariConfig hikariConfig = new HikariConfig(); + hikariConfig.setDataSource(mysqlSource); + hikariConfig.setPoolName(poolName); + hikariConfig.setMinimumIdle(1); + hikariConfig.setMaximumPoolSize(MAX_POOL_SIZE); + hikariConfig.setConnectionTestQuery("SELECT 1"); + hikariConfig.setConnectionTimeout(1000); + hikariConfig.setAutoCommit(true); + hikariConfig.setLeakDetectionThreshold(2000); // Set HikariCP pool // Replace source with hds - source = new HikariDataSource(cfg); - logger.warn("HikariCP pooling enabled for '{}'", poolName); + source = new HikariDataSource(hikariConfig); } catch (ClassNotFoundException ignored) { logger.debug("HikariCP isn't in classpath for '{}'", poolName); }