switched from dbcp2 to c3p0 pooling. updating libraries
This commit is contained in:
@ -36,15 +36,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.commons.dbcp2.ConnectionFactory;
|
||||
import org.apache.commons.dbcp2.DriverManagerConnectionFactory;
|
||||
import org.apache.commons.dbcp2.PoolableConnection;
|
||||
import org.apache.commons.dbcp2.PoolableConnectionFactory;
|
||||
import org.apache.commons.dbcp2.PoolingDataSource;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.pool2.impl.AbandonedConfig;
|
||||
import org.apache.commons.pool2.impl.GenericObjectPool;
|
||||
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
|
||||
import org.mariadb.jdbc.MariaDbDataSource;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -52,7 +44,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.mchange.v2.c3p0.ComboPooledDataSource;
|
||||
import net.locusworks.discord.eighttrack.services.ConfigurationService;
|
||||
|
||||
@Primary
|
||||
@ -104,8 +96,7 @@ public class EightTrackDataSource {
|
||||
}
|
||||
|
||||
private DataSource getDataSource(Boolean isFlyway) throws Exception {
|
||||
logger.debug("Gettind datasource");
|
||||
Class.forName(DRIVER).getDeclaredConstructor().newInstance();
|
||||
logger.debug("Getting datasource");
|
||||
|
||||
String user = confService.getDatabaseUsername();
|
||||
String passwd = confService.getDatabasePassword();
|
||||
@ -129,34 +120,16 @@ public class EightTrackDataSource {
|
||||
|
||||
logger.debug("Database connection string: %s", url);
|
||||
|
||||
ConnectionFactory cf = new DriverManagerConnectionFactory(url, props);
|
||||
//Create the poolable connection factory
|
||||
PoolableConnectionFactory pcf = new PoolableConnectionFactory(cf, null);
|
||||
pcf.setValidationQuery("SELECT 1");
|
||||
pcf.setDefaultAutoCommit(true);
|
||||
|
||||
GenericObjectPoolConfig<PoolableConnection> poolConfig = new GenericObjectPoolConfig<>();
|
||||
poolConfig.setMinIdle(10);
|
||||
poolConfig.setMaxTotal(100);
|
||||
|
||||
AbandonedConfig abandonConfig = new AbandonedConfig();
|
||||
abandonConfig.setRemoveAbandonedTimeout(60);
|
||||
abandonConfig.setLogAbandoned(false);
|
||||
abandonConfig.setRemoveAbandonedOnBorrow(true);
|
||||
abandonConfig.setRemoveAbandonedOnMaintenance(true);
|
||||
|
||||
//Create the pool of connections
|
||||
GenericObjectPool<PoolableConnection> connectionPool = new GenericObjectPool<>(pcf, poolConfig);
|
||||
connectionPool.setTestOnBorrow(true);
|
||||
connectionPool.setTestWhileIdle(true);
|
||||
connectionPool.setTimeBetweenEvictionRunsMillis(10000);
|
||||
connectionPool.setMinEvictableIdleTimeMillis(1000);
|
||||
connectionPool.setAbandonedConfig(abandonConfig);
|
||||
pcf.setPool(connectionPool);
|
||||
|
||||
//Pooling data source itself
|
||||
PoolingDataSource<PoolableConnection> dataSource = new PoolingDataSource<>(connectionPool);
|
||||
return dataSource;
|
||||
ComboPooledDataSource cpds = new ComboPooledDataSource();
|
||||
cpds.setDriverClass(DRIVER);
|
||||
cpds.setJdbcUrl(url);
|
||||
cpds.setUser(user);
|
||||
cpds.setPassword(passwd);
|
||||
cpds.setMinPoolSize(5);
|
||||
cpds.setMaxPoolSize(100);
|
||||
cpds.setAcquireIncrement(10);
|
||||
|
||||
return cpds;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user