diff --git a/src/main/java/com/alibaba/druid/pool/ha/MultiDataSource.java b/src/main/java/com/alibaba/druid/pool/ha/MultiDataSource.java index c7b4a2c72f..18b9c74ece 100644 --- a/src/main/java/com/alibaba/druid/pool/ha/MultiDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/ha/MultiDataSource.java @@ -232,12 +232,12 @@ public abstract class MultiDataSource extends DataSourceAdapter implements Multi return scheduler; } - public long getValidDataSourceCheckPeriodMillis() { - return failureDetectPeriodMillis; + public void setFailureDetectPeriodMillis(long failureDetectPeriodMillis) { + this.failureDetectPeriodMillis = failureDetectPeriodMillis; } - public void setValidDataSourceCheckPeriodMillis(long validDataSourceCheckPeriodMillis) { - this.failureDetectPeriodMillis = validDataSourceCheckPeriodMillis; + public void setConfigLoadPeriodMillis(long configLoadPeriodMillis) { + this.configLoadPeriodMillis = configLoadPeriodMillis; } public DataSourceFailureDetecter getFailureDetector() { diff --git a/src/main/java/com/alibaba/druid/pool/ha/cobar/CobarDataSource.java b/src/main/java/com/alibaba/druid/pool/ha/cobar/CobarDataSource.java index b13dfae2d5..1c0dd0d846 100644 --- a/src/main/java/com/alibaba/druid/pool/ha/cobar/CobarDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/ha/cobar/CobarDataSource.java @@ -14,7 +14,12 @@ import com.alibaba.druid.util.JdbcUtils; public class CobarDataSource extends MultiDataSource { - private final static Log LOG = LogFactory.getLog(CobarDataSource.class); + private final static Log LOG = LogFactory.getLog(CobarDataSource.class); + + public static long DEFAULT_FAILURE_DETECT_PERRIOD_MILLIS = 1000 * 3; // 3 + // seconds + public static long DEFAULT_CONFIG_LOAD_PERRIOD_MILLIS = 1000 * 60 * 3; // 3 + // minutes private String url; @@ -22,11 +27,27 @@ public class CobarDataSource extends MultiDataSource { private String password; - private List proxyFilters = new ArrayList(); + private List proxyFilters = new ArrayList(); private String filters; + private int maxPoolSize; + public CobarDataSource(){ this.setFailureDetector(new CobarFailureDetecter()); + this.setFailureDetectPeriodMillis(DEFAULT_FAILURE_DETECT_PERRIOD_MILLIS); + this.setConfigLoadPeriodMillis(DEFAULT_CONFIG_LOAD_PERRIOD_MILLIS); + } + + public int getMaxPoolSize() { + return maxPoolSize; + } + + public void setMaxPoolSize(int maxPoolSize) throws SQLException { + if (this.isIntited()) { + throw new SQLException("dataSource inited"); + } + + this.maxPoolSize = maxPoolSize; } public String getUrl() { @@ -84,7 +105,7 @@ public class CobarDataSource extends MultiDataSource { break; } catch (Exception ex) { LOG.error("load config error", ex); - + try { Thread.sleep(1000); } catch (InterruptedException e) {