/** * creates a new {@link BasicDataSource} * @param config the properties used for datasource instantiation * @return */ public static BasicDataSource newDataSource(Config config) { BasicDataSource basicDataSource = new BasicDataSource(); PasswordManager passwordManager = PasswordManager.getInstance(ConfigUtils.configToProperties(config)); basicDataSource.setDriverClassName(ConfigUtils.getString(config, ConfigurationKeys.STATE_STORE_DB_JDBC_DRIVER_KEY, ConfigurationKeys.DEFAULT_STATE_STORE_DB_JDBC_DRIVER)); // MySQL server can timeout a connection so need to validate connections before use basicDataSource.setValidationQuery("select 1"); basicDataSource.setTestOnBorrow(true); basicDataSource.setDefaultAutoCommit(false); basicDataSource.setTimeBetweenEvictionRunsMillis(60000); basicDataSource.setUrl(config.getString(ConfigurationKeys.STATE_STORE_DB_URL_KEY)); basicDataSource.setUsername(passwordManager.readPassword( config.getString(ConfigurationKeys.STATE_STORE_DB_USER_KEY))); basicDataSource.setPassword(passwordManager.readPassword( config.getString(ConfigurationKeys.STATE_STORE_DB_PASSWORD_KEY))); basicDataSource.setMinEvictableIdleTimeMillis( ConfigUtils.getLong(config, ConfigurationKeys.STATE_STORE_DB_CONN_MIN_EVICTABLE_IDLE_TIME_KEY, ConfigurationKeys.DEFAULT_STATE_STORE_DB_CONN_MIN_EVICTABLE_IDLE_TIME)); return basicDataSource; }
bds.setMaxIdle(maxPerUserConnectionCount); bds.setMaxActive(maxPerUserConnectionCount); bds.setMinEvictableIdleTimeMillis( idleConnectionsCleanupTimeoutMs); bds.setAccessToUnderlyingConnectionAllowed(true);
@Override public synchronized void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) { delegate.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); }
dbcpDataSource.setMaxWait(getIntProperty(config, "checkoutTimeout", 1000)); dbcpDataSource.setValidationQuery(getStringProperty(config, "preferredTestQuery", "SELECT 1")); dbcpDataSource.setMinEvictableIdleTimeMillis(getIntProperty(config, "minEvictableIdleTimeMillis", 1800000));// 30min dbcpDataSource.setTimeBetweenEvictionRunsMillis(getIntProperty(config, "timeBetweenEvictionRunsMillis", 30000)); // 30s dbcpDataSource.setRemoveAbandonedTimeout(getIntProperty(config, "removeAbandonedTimeout", 300)); // 30s
dataSource.setMinEvictableIdleTimeMillis(1000 * 20); dataSource.setTimeBetweenEvictionRunsMillis(1000 * 10);
@ManagedAttribute @Description("Set the minimum amount of time an object may sit idle in the pool before it is eligible for eviction" + " by the idle object evictor (if any).") public void setMinEvictableIdleTimeMillis(final long time) { ds.setMinEvictableIdleTimeMillis(time); }
@Primary @Bean(name = "readableDataSource") @ConfigurationProperties(prefix = "spring.datasource2") public DataSource writeDataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setRemoveAbandoned(true); dataSource.setTestWhileIdle(true); dataSource.setTimeBetweenEvictionRunsMillis(30000); dataSource.setNumTestsPerEvictionRun(30); dataSource.setMinEvictableIdleTimeMillis(1800000); return dataSource; }
@Primary @Bean(name = "writeableDataSource") @ConfigurationProperties(prefix = "spring.datasource") public DataSource writeDataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setRemoveAbandoned(true); dataSource.setTestWhileIdle(true); dataSource.setTimeBetweenEvictionRunsMillis(30000); dataSource.setNumTestsPerEvictionRun(30); dataSource.setMinEvictableIdleTimeMillis(1800000); return dataSource; }
dataSource.setMinEvictableIdleTimeMillis(minEvictableTime * 1000l);
@Primary @Bean(destroyMethod = "close", name = "dataSource") public DataSource dataSource(DataSourceProperties properties) { log.info("*************************dataSource***********************"); BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(properties.driverClassName); dataSource.setUrl(properties.url); dataSource.setUsername(properties.username); dataSource.setPassword(properties.password); dataSource.setMaxIdle(properties.maxIdle); dataSource.setMaxActive(properties.maxActive); dataSource.setMaxWait(properties.maxWait); dataSource.setInitialSize(properties.initialSize); dataSource.setValidationQuery(properties.validationQuery); dataSource.setRemoveAbandoned(true); dataSource.setTestWhileIdle(true); dataSource.setTimeBetweenEvictionRunsMillis(30000); dataSource.setNumTestsPerEvictionRun(30); dataSource.setMinEvictableIdleTimeMillis(1800000); return dataSource; }
@Bean(destroyMethod = "close", name = "readOnlyDataSource") public DataSource dataSource(@Qualifier("readOnlyDataSourceProperties") DataSourceProperties readOnlyDataSourceProperties) { log.info("*************************dataSource***********************"); BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(readOnlyDataSourceProperties.driverClassName); dataSource.setUrl(readOnlyDataSourceProperties.url); dataSource.setUsername(readOnlyDataSourceProperties.username); dataSource.setPassword(readOnlyDataSourceProperties.password); dataSource.setMaxIdle(readOnlyDataSourceProperties.maxIdle); dataSource.setMaxActive(readOnlyDataSourceProperties.maxActive); dataSource.setMaxWait(readOnlyDataSourceProperties.maxWait); dataSource.setInitialSize(readOnlyDataSourceProperties.initialSize); dataSource.setValidationQuery(readOnlyDataSourceProperties.validationQuery); dataSource.setRemoveAbandoned(true); dataSource.setTestWhileIdle(true); dataSource.setTimeBetweenEvictionRunsMillis(30000); dataSource.setNumTestsPerEvictionRun(30); dataSource.setMinEvictableIdleTimeMillis(1800000); return dataSource; }
/** * creates a new {@link BasicDataSource} * @param config the properties used for datasource instantiation * @return */ public static BasicDataSource newDataSource(Config config) { BasicDataSource basicDataSource = new BasicDataSource(); PasswordManager passwordManager = PasswordManager.getInstance(ConfigUtils.configToProperties(config)); basicDataSource.setDriverClassName(ConfigUtils.getString(config, ConfigurationKeys.STATE_STORE_DB_JDBC_DRIVER_KEY, ConfigurationKeys.DEFAULT_STATE_STORE_DB_JDBC_DRIVER)); // MySQL server can timeout a connection so need to validate connections before use basicDataSource.setValidationQuery("select 1"); basicDataSource.setTestOnBorrow(true); basicDataSource.setDefaultAutoCommit(false); basicDataSource.setTimeBetweenEvictionRunsMillis(60000); basicDataSource.setUrl(config.getString(ConfigurationKeys.STATE_STORE_DB_URL_KEY)); basicDataSource.setUsername(passwordManager.readPassword( config.getString(ConfigurationKeys.STATE_STORE_DB_USER_KEY))); basicDataSource.setPassword(passwordManager.readPassword( config.getString(ConfigurationKeys.STATE_STORE_DB_PASSWORD_KEY))); basicDataSource.setMinEvictableIdleTimeMillis( ConfigUtils.getLong(config, ConfigurationKeys.STATE_STORE_DB_CONN_MIN_EVICTABLE_IDLE_TIME_KEY, ConfigurationKeys.DEFAULT_STATE_STORE_DB_CONN_MIN_EVICTABLE_IDLE_TIME)); return basicDataSource; }
/** * creates a new {@link BasicDataSource} * @param config the properties used for datasource instantiation * @return */ public static BasicDataSource newDataSource(Config config) { BasicDataSource basicDataSource = new BasicDataSource(); PasswordManager passwordManager = PasswordManager.getInstance(ConfigUtils.configToProperties(config)); basicDataSource.setDriverClassName(ConfigUtils.getString(config, ConfigurationKeys.STATE_STORE_DB_JDBC_DRIVER_KEY, ConfigurationKeys.DEFAULT_STATE_STORE_DB_JDBC_DRIVER)); // MySQL server can timeout a connection so need to validate connections before use basicDataSource.setValidationQuery("select 1"); basicDataSource.setTestOnBorrow(true); basicDataSource.setDefaultAutoCommit(false); basicDataSource.setTimeBetweenEvictionRunsMillis(60000); basicDataSource.setUrl(config.getString(ConfigurationKeys.STATE_STORE_DB_URL_KEY)); basicDataSource.setUsername(passwordManager.readPassword( config.getString(ConfigurationKeys.STATE_STORE_DB_USER_KEY))); basicDataSource.setPassword(passwordManager.readPassword( config.getString(ConfigurationKeys.STATE_STORE_DB_PASSWORD_KEY))); basicDataSource.setMinEvictableIdleTimeMillis( ConfigUtils.getLong(config, ConfigurationKeys.STATE_STORE_DB_CONN_MIN_EVICTABLE_IDLE_TIME_KEY, ConfigurationKeys.DEFAULT_STATE_STORE_DB_CONN_MIN_EVICTABLE_IDLE_TIME)); return basicDataSource; }
@Bean(destroyMethod = "close", name = "dataSource") public DataSource dataSource(DataSourceProperties properties) { log.info("*************************dataSource***********************"); BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(properties.driverClassName); dataSource.setUrl(properties.url); dataSource.setUsername(properties.username); dataSource.setPassword(properties.password); dataSource.setMaxIdle(properties.maxIdle); dataSource.setMaxActive(properties.maxActive); dataSource.setMaxWait(properties.maxWait); dataSource.setInitialSize(properties.initialSize); dataSource.setValidationQuery(properties.validationQuery); dataSource.setRemoveAbandoned(true); dataSource.setTestWhileIdle(true); dataSource.setTimeBetweenEvictionRunsMillis(30000); dataSource.setNumTestsPerEvictionRun(30); dataSource.setMinEvictableIdleTimeMillis(1800000); return dataSource; }
@Bean(destroyMethod = "close", name = "dataSource") public DataSource dataSource(DataSourceProperties properties) { log.info("*************************dataSource***********************"); BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(properties.driverClassName); dataSource.setUrl(properties.url); dataSource.setUsername(properties.username); dataSource.setPassword(properties.password); dataSource.setMaxIdle(properties.maxIdle); dataSource.setMaxActive(properties.maxActive); dataSource.setMaxWait(properties.maxWait); dataSource.setInitialSize(properties.initialSize); dataSource.setValidationQuery(properties.validationQuery); dataSource.setRemoveAbandoned(true); dataSource.setTestWhileIdle(true); dataSource.setTimeBetweenEvictionRunsMillis(30000); dataSource.setNumTestsPerEvictionRun(30); dataSource.setMinEvictableIdleTimeMillis(1800000); return dataSource; }
public DataSource createDataSource() { initializeDriver(); final BasicDataSource ds = new BasicDataSource(); ds.setDefaultAutoCommit(false); ds.setUrl(_jdbcUrl); ds.setMaxActive(getSystemPropertyValue(SYSTEM_PROPERTY_CONNECTION_POOL_MAX_SIZE, -1)); ds.setMinEvictableIdleTimeMillis( getSystemPropertyValue(SYSTEM_PROPERTY_CONNECTION_POOL_MIN_EVICTABLE_IDLE_TIME_MILLIS, 500)); ds.setTimeBetweenEvictionRunsMillis( getSystemPropertyValue(SYSTEM_PROPERTY_CONNECTION_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLIS, 1000)); if (_username != null && _password != null) { ds.setUsername(_username); ds.setPassword(_password); } return ds; }
ds.setTestWhileIdle(true); ds.setTimeBetweenEvictionRunsMillis(600000); // 10 Minutes ds.setMinEvictableIdleTimeMillis(60000); // 1 Minute ds.setMaxActive(-1); // unlimited ds.setMaxIdle(GenericObjectPool.DEFAULT_MAX_IDLE + 10);
public DataSource createDataSource() { initializeDriver(); BasicDataSource ds = new BasicDataSource(); ds.setDefaultAutoCommit(false); ds.setUrl(_jdbcUrl); ds.setMaxActive(getSystemPropertyValue(SYSTEM_PROPERTY_CONNECTION_POOL_MAX_SIZE, -1)); ds.setMinEvictableIdleTimeMillis(getSystemPropertyValue( SYSTEM_PROPERTY_CONNECTION_POOL_MIN_EVICTABLE_IDLE_TIME_MILLIS, 500)); ds.setTimeBetweenEvictionRunsMillis(getSystemPropertyValue( SYSTEM_PROPERTY_CONNECTION_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLIS, 1000)); if (_username != null && _password != null) { ds.setUsername(_username); ds.setPassword(_password); } return ds; }
dataSource.setTestOnReturn(false); dataSource.setTestWhileIdle(true); dataSource.setMinEvictableIdleTimeMillis(5 * 60 * 1000); dataSource.setTimeBetweenEvictionRunsMillis(3 * 60 * 1000); dataSource.setNumTestsPerEvictionRun(poolSize);
@Override protected BasicDataSource setupDataSourcePool( DataSourceConfigurationValue config ) throws Exception { BasicDataSource pool = new BasicDataSource(); Class.forName( config.driver().get() ); pool.setDriverClassName( config.driver().get() ); pool.setUrl( config.url().get() ); if ( !config.username().get().equals( "" ) ) { pool.setUsername( config.username().get() ); pool.setPassword( config.password().get() ); } if ( config.minPoolSize().get() != null ) { pool.setMinIdle( config.minPoolSize().get() ); } if ( config.maxPoolSize().get() != null ) { pool.setMaxActive( config.maxPoolSize().get() ); } if ( config.loginTimeoutSeconds().get() != null ) { pool.setLoginTimeout( config.loginTimeoutSeconds().get() ); } if ( config.maxConnectionAgeSeconds().get() != null ) { pool.setMinEvictableIdleTimeMillis( config.maxConnectionAgeSeconds().get() * 1000 ); } if ( config.validationQuery().get() != null ) { pool.setValidationQuery( config.validationQuery().get() ); } return pool; }