C3P0Adapter

git-svn-id: http://code.alibabatech.com/svn/druid/trunk@682 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-09-07 14:49:19 +00:00
parent 927c1b6e48
commit 2c603e0274
3 changed files with 25 additions and 12 deletions
@@ -166,7 +166,17 @@ public abstract class DruidAbstractDataSource implements DruidAbstractDataSource
protected Date createdTime;
protected int connectionErrorRetryAttempts = 30;
protected int connectionErrorRetryAttempts = 30;
protected boolean breakAfterAcquireFailure = false;
public boolean isBreakAfterAcquireFailure() {
return breakAfterAcquireFailure;
}
public void setBreakAfterAcquireFailure(boolean breakAfterAcquireFailure) {
this.breakAfterAcquireFailure = breakAfterAcquireFailure;
}
public int getConnectionErrorRetryAttempts() {
return connectionErrorRetryAttempts;
@@ -699,9 +699,13 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
errorCount++;
if (errorCount > connectionErrorRetryAttempts && timeBetweenConnectErrorMillis > 0) {
if (breakAfterAcquireFailure) {
break;
}
try {
Thread.sleep(timeBetweenConnectErrorMillis);
} catch (InterruptedException e1) {
} catch (InterruptedException interruptEx) {
break;
}
}
@@ -13,7 +13,7 @@ public class DruidDataSourceC3P0Adapter implements DataSource, DruidDataSourceC3
public DruidDataSourceC3P0Adapter(){
dataSource = new DruidDataSource();
// setDefault
this.setInitialPoolSize(3);
this.setAcquireIncrement(3);
@@ -281,6 +281,14 @@ public class DruidDataSourceC3P0Adapter implements DataSource, DruidDataSourceC3
dataSource.setTimeBetweenConnectErrorMillis(acquireRetryDelay);
}
public boolean isBreakAfterAcquireFailure() {
return dataSource.isBreakAfterAcquireFailure();
}
public void setBreakAfterAcquireFailure(boolean breakAfterAcquireFailure) {
dataSource.setBreakAfterAcquireFailure(breakAfterAcquireFailure);
}
// /////////////////
@Override
@@ -313,7 +321,6 @@ public class DruidDataSourceC3P0Adapter implements DataSource, DruidDataSourceC3
private String overrideDefaultUser;
private String overrideDefaultPassword;
private int propertyCycle;
private boolean breakAfterAcquireFailure;
private boolean usesTraditionalReflectiveProxies;
private String userOverridesAsString;
private int maxAdministrativeTaskTime;
@@ -440,12 +447,4 @@ public class DruidDataSourceC3P0Adapter implements DataSource, DruidDataSourceC3
this.propertyCycle = propertyCycle;
}
public boolean isBreakAfterAcquireFailure() {
return breakAfterAcquireFailure;
}
public void setBreakAfterAcquireFailure(boolean breakAfterAcquireFailure) {
this.breakAfterAcquireFailure = breakAfterAcquireFailure;
}
}