33import com .xxdb .data .BasicInt ;
44import org .slf4j .Logger ;
55import org .slf4j .LoggerFactory ;
6-
76import java .io .IOException ;
87import java .util .ArrayList ;
98import java .util .Objects ;
@@ -97,12 +96,8 @@ protected class SimpleDBConnectionPoolImpl {
9796 try {
9897 for (int i = 0 ; i < initialPoolSize ; i ++) {
9998 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 {
99+ if (!poolEntry .entryConnect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , loadBalance ))
104100 log .error (String .format ("Connection %s connect failure." , poolEntry .connectionName ));
105- }
106101 poolEntryArrayList .add (poolEntry );
107102 }
108103 poolEntries = new CopyOnWriteArrayList <>(poolEntryArrayList );
@@ -161,19 +156,13 @@ boolean isClosed() {
161156
162157 class PoolEntry extends DBConnection {
163158 AtomicBoolean inUse = new AtomicBoolean (false );
164- volatile boolean isFirstConnect = true ;
165- volatile boolean isFirstLogin = true ;
166159 String connectionName ;
167160
168161 PoolEntry (boolean useSSL , boolean compress , boolean usePython , String connectionName ) {
169162 super (false , useSSL , compress , usePython );
170163 this .connectionName = connectionName ;
171164 }
172165
173- String getConnectionName () {
174- return connectionName ;
175- }
176-
177166 boolean isIdle () {
178167 return !this .inUse .get ();
179168 }
@@ -183,20 +172,18 @@ public void setLoadBalance(boolean loadBalance) {
183172 throw new RuntimeException ("The loadBalance configuration of connection in connection pool can only be set in SimpleDBConnectionPoolConfig." );
184173 }
185174
175+ private boolean entryConnect (String hostName , int port , String userId , String password , String initialScript , boolean enableHighAvailability , String [] highAvailabilitySites , boolean reconnect , boolean enableLoadBalance ) throws IOException {
176+ return super .connect (hostName , port , userId , password , initialScript , enableHighAvailability , highAvailabilitySites , reconnect , enableLoadBalance );
177+ }
178+
186179 @ Override
187180 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." );
181+ throw new RuntimeException ("The connection in connection pool can only connect by pool." );
192182 }
193183
194184 @ Override
195185 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." );
186+ throw new RuntimeException ("The connection in connection pool can only login by pool." );
200187 }
201188
202189 @ Override
0 commit comments