3( () * +,- *. / 0 1 2 +34 56 78 9 :; <= >? @A B *C * D EF GHI #J K #L MN (* O PQ RS@Y ,T ,U V (W X (Y (Z ([ (\ (] ^_ (` +ab (cd (ef (gh (i jk (l m (n o pqrs +tuv #wxy Uz +{ |}~ ( (  ( ( # ezu0 (  + 2 + j                    j zinstance2Ledu/ucsb/nceas/metacat/database/DBConnectionPool;connectionPoolLjava/util/Vector; SignatureBLjava/util/Vector;runnerLjava/lang/Thread;_countOfReachMaximumI logMetacatLorg/apache/log4j/Logger; _maxConnNum _initConnNum _incrConnNum_maxAgeJ _maxConnTime _maxUsageNum_connCountWarnLimit_dbConnRecyclThrdLjava/lang/String;_cyclTimeDbConnMAXIMUMCONNECTIONNUMBERINITIALCONNECTIONNUMBERINCREASECONNECTIONNUMBER MAXIMUMAGEMAXIMUMCONNECTIONTIMEMAXIMUMUSAGENUMBERDBCONNECTIONRECYCLETHREADCYCLETIMEOFDBCONNECTIONLIMIT ConstantValueFREEBUSY getInstance4()Ledu/ucsb/nceas/metacat/database/DBConnectionPool;CodeLineNumberTableLocalVariableTablelog StackMapTable Exceptions()Vthis)getSizeOfDBConnectionPool()IinitialDBConnectionPoolidbConn.Ledu/ucsb/nceas/metacat/database/DBConnection;NgetDBConnectionB(Ljava/lang/String;)Ledu/ucsb/nceas/metacat/database/DBConnection;jeLjava/lang/Exception; methodNamedbrandomindexsizexvalidateDBConnection1(Ledu/ucsb/nceas/metacat/database/DBConnection;)Z startTimemetaDataLjava/sql/DatabaseMetaData;stopTimereturnDBConnection2(Ledu/ucsb/nceas/metacat/database/DBConnection;I)Vconn serialNumbergetIndexOfPoolForConnection1(Ledu/ucsb/nceas/metacat/database/DBConnection;)IinforeleaseLjava/sql/SQLException;rungetFreeDBConnectionNumbernumberOfFreeDBConnetionpoolSizeprintBusyDBConnections(I)V dbConnectioni$Ljava/util/Iterator;usedConnectionCountshowCountWarningZ warnMessageshrinkConnectionPoolSize()ZconnectionPoolSizefreeConnectionSize difference hasExceptionresultshrinkDBConnectionPoolSizepnfe4Ledu/ucsb/nceas/utilities/PropertyNotFoundException; SourceFileDBConnectionPool.java 0edu/ucsb/nceas/metacat/database/DBConnectionPool  java/lang/StringBuilder8DBConnectionPool.getInstance - MaximumConnectionNumber:    9DBConnectionPool.getInstance - Intial connection number: DBConnectionPool.getInstance - Running recycle thread or not: 6DBConnectionPool.getInstance - Cycle time of recycle: java/util/Vector on java/lang/Thread   ,edu/ucsb/nceas/metacat/database/DBConnection  java/lang/Double           BDBConnectionPool.getDBConnection - The connection is checked out:  ?DBConnectionPool.getDBConnection - The method for checking is: .DBConnectionPool.getDBConnection - The age is 0DBConnectionPool.getDBConnection - The usage is ;DBConnectionPool.getDBConnection - The connection time is:      2DBConnectionPool.getDBConnection - The maximum of = open db connections is reached. New db connection to MetaCat cannot be established. "finally could not get dbconnectionKDBConnectionPool.getDBConnection - sleep 5000ms, could not get dbconnection java/lang/Exception6DBConnectionPool.getDBConnection - General exception:    KDBConnectionPool.validateDBConnection - Connection usageCount is too high: QDBConnectionPool.validateDBConnection - Connection has too much connection time: ?DBConnectionPool.validateDBConnection - Connection is too old:    6DBConnectionPool.validateDBConnection - General error:    java/sql/SQLException8DBConnectionPool.release - Error in release connection: =DBConnectionPool.run - This DBConnection is checked out for:  secsDBConnectionPool.run - DBConnectionPool.run - method: .DBConnectionPool.run - Warning for connection  :  Checking if the db connection 5 is valid according to metacat.properties parameters.  <@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Checking if the db connection  *DB connection is not valid! Releasing it.DBConnectionPool.run - Recyle: 1@@@@@@@@@@@@@@@@@@@@@@@@@db connection released: "DBConnectionPool.run - SQL error: number of connections in pool: connection pool capacity: &DBConnectionPool.run - General error:    --- Method:  is using:  for  ms MDBConnectionPool.printBusyDBConnections - Excessive connection time, method: *DBConnectionPool.printBusyDBConnections - ( DB connections currently busy because:  ,DBConnectionPool.shrinkConnectionPoolSize -  connection(s) 'being used and connection pool size is BDBConnectionPool.shrinkConnectionPoolSize - Connection pool size: DDBConnectionPool.shrinkConnectionPoolSize - Free Connection number: ;DBConnectionPool.shrinkConnectionPoolSize - SQL Exception: .DBConnectionPool.shrinkDBConnectionPoolSize - DDBConnectionPool.shrinkDBConnectionPoolSize - Connection pool size: FDBConnectionPool.shrinkDBConnectionPoolSize - Free Connection number: 9DBConnectionPool.shrinkDBConnectionPoolSize - SQL error: database.maximumConnections  ! "# database.initialConnections database.incrementConnections database.maximumConnectionAge database.maximumConnectionTime$ %&database.maximumUsageNumber !database.connectionCountWarnLimit%database.runDBConnectionRecycleThread  database.cycleTimeOfDBConnection 2edu/ucsb/nceas/utilities/PropertyNotFoundException '(Could not get property in static block: java/lang/Objectjava/lang/Runnablejava/lang/Stringjava/lang/Throwablejava/util/Iteratororg/apache/log4j/Logger getLogger,(Ljava/lang/Class;)Lorg/apache/log4j/Logger;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;debug(Ljava/lang/Object;)V(J)Ljava/lang/StringBuilder;equals(Ljava/lang/Object;)Z(Ljava/lang/Runnable;)Vstartaddjava/lang/Math()D(D)VintValue elementAt(I)Ljava/lang/Object; getStatus setStatusincreaseCheckOutSerialNumberincreaseUsageCountsetCheckOutMethodName(Ljava/lang/String;)V setAutoCommit(Z)VgetTagtracegetCheckOutMethodNamegetAge()J getUsageCountgetConnectionTimejava/lang/SystemcurrentTimeMillissetCheckOutTime(J)VcloseremoveinsertElementAt(Ljava/lang/Object;I)Vfatalsleep getMessageerror getMetaData()Ljava/sql/DatabaseMetaData;setConnectionTimegetCheckOutSerialNumbergetCheckOutTime interruptgetWarningMessage()Ljava/sql/SQLWarning;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;warnoutLjava/io/PrintStream;java/io/PrintStreamprintlncapacityiterator()Ljava/util/Iterator;hasNextnext()Ljava/lang/Object;1edu/ucsb/nceas/metacat/properties/PropertyService getProperty&(Ljava/lang/String;)Ljava/lang/String;java/lang/IntegerparseInt(Ljava/lang/String;)Ijava/lang/Long parseLong(Ljava/lang/String;)Jerr!  )DܻYK*Y *Y  *Y *Y *Y *Y *Y *Y 2 0Ib{ e/*Y* !"#Y*$%%&(. / .e1' "L=(Y)L+*W ! "  e) +L=>6'66,Y-.k01=6`p>2(L+3+4+5+6+7+*8+9:Y;+< =:Y>+? =:Y@+A =:YB+C =:YD+E =+FGH++IJW(Y)L+K ^` )6(Y):*W`6 (Y):*Wv:YL MN OH`HH H:PO:Q RT"::YVW X*YU7 &8BJU\chmrw|  !) 17=)E+Q/\1e2n/w9;<9GJKMNOVW\Y[cz ; e T  }  : BPe k*C!:YZ*C *E!:Y[*E *A!:Y\*A F@*]NF7*7*e^"L:Y_+W XzUNs u&w({3}OQ\xz~4~  (((])9=N*`=*a$2(N-5-F-be^- G.  "'38*9975 (*O<M**'&2(:,<"< : *6BDGM46 -OMK & c!" %dYK<'82(M,I M:Yf,g X*çN*-#25eZ]]`]2  # . 256RXb .6? [ D  - LYM>'Ų2(L+3sF+behd:YjF+bekmm O:Yn+< O:Yo+? X+35+p+:Yq+<r+ps t:Yu+vw xyYz+vw {+4_y|{:Y}+< +IJW(Y)L+KyY~+v {"::Yg XyY' {yY {7,ç :,TM:Y,W XrueU!"$&*6-_/{05:<?@BDE:G>IFKNLVMrSuPwRUV$Z^c`bc4w   *  5B ;D H* 1;L='=>2(L+3* lmnp ruw&y)r/}* /-+ <cMN--(:3>Y,?<A ME?:Y?<E t\%:Y , t2  +48s4+  @ [G%);<=>6:';<d=-:Y  x5:Y x:Y x_Xd6K2(:I$:>:Yg XJW66en "Le~RP  L1\ )!;<=N';<d=-:Y  x5:Y :Y _Xd6K2(N-32-I"::Yg XJWe^ Jc|  %>PJ1a "XH: KY* {  nq^34 VX#Z.\:^E`Pb[dcfnkqhrimnopqrstu r#$ q%&'