mirror of
https://github.com/GravitLauncher/Launcher
synced 2024-12-22 16:41:46 +03:00
[FIX] MySQLSourceConfig HikariCP
This commit is contained in:
parent
c0b1373542
commit
62991ed709
1 changed files with 14 additions and 10 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue