mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
C3P0Adapter
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@682 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user