@@ -97,12 +97,8 @@ protected class SimpleDBConnectionPoolImpl {
97
97
try {
98
98
for (int i = 0 ; i < initialPoolSize ; i ++) {
99
99
PoolEntry poolEntry = new PoolEntry (useSSL , compress , usePython , String .format ("DolphinDBConnection_%d" , i + 1 ));
100
- if (poolEntry .connect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , loadBalance )) {
101
- poolEntry .isFirstConnect = false ;
102
- poolEntry .isFirstLogin = false ;
103
- }else {
100
+ if (!poolEntry .entryConnect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , loadBalance ))
104
101
log .error (String .format ("Connection %s connect failure." , poolEntry .connectionName ));
105
- }
106
102
poolEntryArrayList .add (poolEntry );
107
103
}
108
104
poolEntries = new CopyOnWriteArrayList <>(poolEntryArrayList );
@@ -162,7 +158,6 @@ boolean isClosed() {
162
158
class PoolEntry extends DBConnection {
163
159
AtomicBoolean inUse = new AtomicBoolean (false );
164
160
volatile boolean isFirstConnect = true ;
165
- volatile boolean isFirstLogin = true ;
166
161
String connectionName ;
167
162
168
163
PoolEntry (boolean useSSL , boolean compress , boolean usePython , String connectionName ) {
@@ -183,20 +178,18 @@ public void setLoadBalance(boolean loadBalance) {
183
178
throw new RuntimeException ("The loadBalance configuration of connection in connection pool can only be set in SimpleDBConnectionPoolConfig." );
184
179
}
185
180
181
+ private boolean entryConnect (String hostName , int port , String userId , String password , String initialScript , boolean enableHighAvailability , String [] highAvailabilitySites , boolean reconnect , boolean enableLoadBalance ) throws IOException {
182
+ return super .connect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , enableLoadBalance );
183
+ }
184
+
186
185
@ Override
187
186
public boolean connect (String hostName , int port , String userId , String password , String initialScript , boolean enableHighAvailability , String [] highAvailabilitySites , boolean reconnect , boolean enableLoadBalance ) throws IOException {
188
- if (isFirstConnect )
189
- return super .connect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , enableLoadBalance );
190
- else
191
- throw new RuntimeException ("The connection in connection pool can only connect by pool." );
187
+ throw new RuntimeException ("The connection in connection pool can only connect by pool." );
192
188
}
193
189
194
190
@ Override
195
191
public void login (String userId , String password , boolean enableEncryption ) throws IOException {
196
- if (isFirstLogin )
197
- super .login (userId , password , enableEncryption );
198
- else
199
- throw new RuntimeException ("The connection in connection pool can only login by pool." );
192
+ throw new RuntimeException ("The connection in connection pool can only login by pool." );
200
193
}
201
194
202
195
@ Override
0 commit comments