@@ -33,6 +33,8 @@ public class SimpleDBConnectionPool {
33
33
private boolean enableHighAvailability ;
34
34
private String [] highAvailabilitySites ;
35
35
private boolean reconnect = true ;
36
+ private int tryReconnectNums ;
37
+
36
38
private static final Logger log = LoggerFactory .getLogger (DBConnection .class );
37
39
38
40
private final Queue <PoolEntry > poolEntries = new ConcurrentLinkedQueue <>();
@@ -57,6 +59,7 @@ public SimpleDBConnectionPool(SimpleDBConnectionPoolConfig simpleDBConnectionPoo
57
59
this .loadBalance = simpleDBConnectionPoolConfig .isLoadBalance ();
58
60
this .enableHighAvailability = simpleDBConnectionPoolConfig .isEnableHighAvailability ();
59
61
this .highAvailabilitySites = simpleDBConnectionPoolConfig .getHighAvailabilitySites ();
62
+ this .tryReconnectNums = simpleDBConnectionPoolConfig .getTryReconnectNums ();
60
63
61
64
initPool ();
62
65
}
@@ -65,7 +68,7 @@ private void initPool() {
65
68
for (int i = 0 ; i < minimumPoolSize ; i ++) {
66
69
try {
67
70
PoolEntry poolEntry = new PoolEntry (useSSL , compress , usePython , String .format ("DolphinDBConnection_%d" , i + 1 ));
68
- if (poolEntry .entryConnect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , loadBalance )) {
71
+ if (poolEntry .entryConnect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , loadBalance , tryReconnectNums )) {
69
72
poolEntries .add (poolEntry );
70
73
} else {
71
74
throw new RuntimeException (String .format ("Connection %s connect failure." , poolEntry .connectionName ));
@@ -109,7 +112,7 @@ public DBConnection getConnection() {
109
112
if (poolEntries .size () < maximumPoolSize ) {
110
113
try {
111
114
PoolEntry poolEntry = new PoolEntry (useSSL , compress , usePython , String .format ("DolphinDBConnection_%d" , poolEntries .size () + 1 ));
112
- if (poolEntry .entryConnect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , loadBalance )) {
115
+ if (poolEntry .entryConnect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , loadBalance , tryReconnectNums )) {
113
116
poolEntries .add (poolEntry );
114
117
if (poolEntry .inUse .compareAndSet (false , true )) {
115
118
return poolEntry ;
@@ -216,8 +219,8 @@ class PoolEntry extends DBConnection {
216
219
this .connectionName = connectionName ;
217
220
}
218
221
219
- private boolean entryConnect (String hostName , int port , String userId , String password , String initialScript , boolean enableHighAvailability , String [] highAvailabilitySites , boolean reconnect , boolean enableLoadBalance ) throws IOException {
220
- boolean isConnected = super .connect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , enableLoadBalance );
222
+ private boolean entryConnect (String hostName , int port , String userId , String password , String initialScript , boolean enableHighAvailability , String [] highAvailabilitySites , boolean reconnect , boolean enableLoadBalance , int tryReconnectNums ) throws IOException {
223
+ boolean isConnected = super .connect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , enableLoadBalance , tryReconnectNums );
221
224
if (isConnected ) {
222
225
this .lastUsedTime = System .currentTimeMillis ();
223
226
}
0 commit comments