DataSource에 EvictionPolicy 적용

main
semin.baek 6 months ago
parent 4e1e3d8fc1
commit 93ae1c5c34

@ -5,7 +5,7 @@ plugins {
} }
group = 'com.bsmlab.dfx' group = 'com.bsmlab.dfx'
version = '1.0.2' version = '1.0.3'
// git commit hash -> application.yml // git commit hash -> application.yml
def gitCommitId = '' def gitCommitId = ''

@ -7,6 +7,7 @@ import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.Duration;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -38,6 +39,14 @@ public class DynamicDataSourceService {
else if(com.ibm.db2.jcc.DB2Driver.class.getCanonicalName().equals(dataSourceConfig.getDriverClassName())) { else if(com.ibm.db2.jcc.DB2Driver.class.getCanonicalName().equals(dataSourceConfig.getDriverClassName())) {
dataSource.setValidationQuery("SELECT 1 FROM SYSIBM.SYSDUMMY1"); dataSource.setValidationQuery("SELECT 1 FROM SYSIBM.SYSDUMMY1");
} }
else if(cubrid.jdbc.driver.CUBRIDDriver.class.getCanonicalName().equals(dataSourceConfig.getDriverClassName())) {
dataSource.setValidationQuery("SELECT 1 FROM DB_ROOT");
}
dataSource.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy");
dataSource.setSoftMinEvictableIdle(Duration.ofSeconds(30));
dataSource.setMinEvictableIdle(Duration.ofSeconds(60));
dataSource.setRemoveAbandonedOnBorrow(true);
dataSource.setRemoveAbandonedOnMaintenance(true);
dataSource.setTestOnBorrow(true); dataSource.setTestOnBorrow(true);
dataSource.setTestOnReturn(true); dataSource.setTestOnReturn(true);
dataSource.setTestOnCreate(true); dataSource.setTestOnCreate(true);
@ -50,6 +59,7 @@ public class DynamicDataSourceService {
} }
public SqlSessionFactory getSqlSessionFactory(String dataSourceId) { public SqlSessionFactory getSqlSessionFactory(String dataSourceId) {
SqlSessionFactory sqlSessionFactory = this.sqlSessionFactoryMap.get(dataSourceId);
return this.sqlSessionFactoryMap.get(dataSourceId); return this.sqlSessionFactoryMap.get(dataSourceId);
} }

Loading…
Cancel
Save