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