![JAR search and dependency download from the Maven repository](/logo.png)
com.zaxxer.hikari.pool.HikariPool.class Maven / Gradle / Ivy
???? 7??
??
?? ?? ?? ?
??
??
?? ?? ?? ? ( ?
??
?? ??
?? ??
? ??
? ??
&? ?
Z??
*? *? ?
? ?
?
Z?
?
Z?
Z
Z
Z
:
>?
C?
Z
G
K? d
Z
!"
!#
?$
k%
k&'(')
*
Z+
, -
.
*/
&01
a2 a3'4 a5
678
9 :;<r=>?
m@?A
GB
aC
*D;E
FG
HI
HJ
mL MNO
P;QRST
U
kV
W
kXY?Z
[
&Q \
^
_
`ab
?c
?derf
gh
ijk
?lmno
?pqrs
?tu
Zw
xyz
?{|
??~
?
k???
k?
&?
&?
&?
&? ????
??
*?
?
*??????
??
?
?
???;?r??
&?
&?
a? ?
k?
&?
?
Z? '
??
???
???
a?
Z??
??
a???
???? ?
?????????
&???????r???
?
?
&?????
?
??
??
??
a?
&?
Z?
?? ?
?????
?
?
?
???
??;?
m?
m?? ?
?
?
?
??
????? PoolInitializationException InnerClasses
KeepaliveTask MaxLifetimeTask HouseKeeper PoolEntryCreator logger Lorg/slf4j/Logger; POOL_NORMAL I
ConstantValue POOL_SUSPENDED
POOL_SHUTDOWN poolState aliveBypassWindowMs J housekeepingPeriodMs lifeTimeVarianceFactor isRequestBoundariesEnabled Z EVICTED_CONNECTION_MESSAGE Ljava/lang/String; DEAD_CONNECTION_MESSAGE poolEntryCreator 4Lcom/zaxxer/hikari/pool/HikariPool$PoolEntryCreator; postFillPoolEntryCreator addConnectionExecutor )Ljava/util/concurrent/ThreadPoolExecutor; closeConnectionExecutor
connectionBag &Lcom/zaxxer/hikari/util/ConcurrentBag; Signature JLcom/zaxxer/hikari/util/ConcurrentBag; leakTaskFactory -Lcom/zaxxer/hikari/pool/ProxyLeakTaskFactory; suspendResumeLock *Lcom/zaxxer/hikari/util/SuspendResumeLock; houseKeepingExecutorService /Ljava/util/concurrent/ScheduledExecutorService; houseKeeperTask &Ljava/util/concurrent/ScheduledFuture; )Ljava/util/concurrent/ScheduledFuture<*>; #(Lcom/zaxxer/hikari/HikariConfig;)V Code LineNumberTable LocalVariableTable startTime this #Lcom/zaxxer/hikari/pool/HikariPool; config Lcom/zaxxer/hikari/HikariConfig;
threadFactory $Ljava/util/concurrent/ThreadFactory; maxPoolSize addConnectionQueue *Ljava/util/concurrent/LinkedBlockingQueue; LocalVariableTypeTable @Ljava/util/concurrent/LinkedBlockingQueue;
StackMapTable?
getConnection ()Ljava/sql/Connection;
Exceptions (J)Ljava/sql/Connection; e Ljava/sql/SQLException; poolEntry "Lcom/zaxxer/hikari/pool/PoolEntry; now timeout Ljava/lang/InterruptedException; hardTimeout shutdown ()V start assassinExecutor? evictConnection (Ljava/sql/Connection;)V
connection Ljava/sql/Connection; proxyConnection (Lcom/zaxxer/hikari/pool/ProxyConnection;? setMetricRegistry (Ljava/lang/Object;)V metricRegistry Ljava/lang/Object; setMetricsTrackerFactory 4(Lcom/zaxxer/hikari/metrics/MetricsTrackerFactory;)V metricsTrackerFactory 1Lcom/zaxxer/hikari/metrics/MetricsTrackerFactory; setHealthCheckRegistry healthCheckRegistry
addBagItem (I)V waiting getActiveConnections ()I getIdleConnections getTotalConnections getThreadsAwaitingConnection softEvictConnections suspendPool
resumePool logPoolState ([Ljava/lang/String;)V prefix [Ljava/lang/String;??? recycle %(Lcom/zaxxer/hikari/pool/PoolEntry;)V closeConnection 7(Lcom/zaxxer/hikari/pool/PoolEntry;Ljava/lang/String;)V
closureReason getPoolStateCounts ()[I createPoolEntry $()Lcom/zaxxer/hikari/pool/PoolEntry; variance lifetime
heartbeatTime maxLifetime
keepaliveTime ConnectionSetupException :Lcom/zaxxer/hikari/pool/PoolBase$ConnectionSetupException; Ljava/lang/Exception; fillPool (Z)V i
countToAdd
isAfterAdd idle shouldAdd? abortActiveConnections )(Ljava/util/concurrent/ExecutorService;)V Ljava/lang/Throwable; &Ljava/util/concurrent/ExecutorService;
checkFailFast initializationFailTimeout throwPoolInitializationException (Ljava/lang/Throwable;)V t softEvictConnection 8(Lcom/zaxxer/hikari/pool/PoolEntry;Ljava/lang/String;Z)Z reason owner %initializeHouseKeepingExecutorService 1()Ljava/util/concurrent/ScheduledExecutorService; executor 2Ljava/util/concurrent/ScheduledThreadPoolExecutor; "destroyHouseKeepingExecutorService getPoolStats '()Lcom/zaxxer/hikari/metrics/PoolStats; createTimeoutException (J)Ljava/sql/SQLException; sqlState errorCode originalException connectionException *Ljava/sql/SQLTransientConnectionException; getUnwrappedDataSource ()Ljavax/sql/DataSource; toString ()Ljava/lang/String; .lambda$initializeHouseKeepingExecutorService$2 &()Ljava/util/concurrent/ThreadFactory; lambda$closeConnection$1 *(Ljava/sql/Connection;Ljava/lang/String;)V lambda$softEvictConnections$0
SourceFile HikariPool.java NestMembers 8com/zaxxer/hikari/util/ConcurrentBag$IConcurrentBagEntry IConcurrentBagEntryHI !com/zaxxer/hikari/pool/HikariPool!" %com.zaxxer.hikari.aliveBypassWindowMs
,- 'com.zaxxer.hikari.housekeeping.periodMs.- (com.zaxxer.hikari.lifeTimeVarianceFactor/- )com.zaxxer.hikari.enableRequestBoundaries01 2com/zaxxer/hikari/pool/HikariPool$PoolEntryCreatorH56
After adding H76 $com/zaxxer/hikari/util/ConcurrentBagH;< (com/zaxxer/hikari/util/SuspendResumeLockHhBAB??CD?hwx st! {t"#$?%? (java/util/concurrent/LinkedBlockingQueueH~&3 BootstrapMethods'()*+ 5com/zaxxer/hikari/util/UtilityElf$CustomDiscardPolicy CustomDiscardPolicy,-89. 8java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy CallerRunsPolicy,/:9 +com/zaxxer/hikari/pool/ProxyLeakTaskFactory0H1?@ -com/zaxxer/hikari/pool/HikariPool$HouseKeeper234EF "com.zaxxer.hikari.blockUntilFilled56789?:;~<~=>? ??@?ABC-[^DhEF com/zaxxer/hikari/pool/PoolEntryGH-?noIJ (connection was evicted) (connection is dead)??KMNOPQh java/sql/SQLException !beginRequest Failed for: {}, ({})R?STUVWXYhZB?? java/lang/InterruptedException[\]^h_H`+$ java/lang/String After shutdown ??ah Before shutdown bcd?hghefg 9Timed-out waiting for add connection executor to shutdownSh?hPQi?? 5Timed-out waiting for connection assassin to shutdownjh ;Timed-out waiting for close connection executor to shutdown &com/zaxxer/hikari/pool/ProxyConnectionkhl? (connection evicted by user)m?? #com.codahale.metrics.MetricRegistryno Bcom/zaxxer/hikari/metrics/dropwizard/CodahaleMetricsTrackerFactory #com/codahale/metrics/MetricRegistryHp %io.dropwizard.metrics5.MetricRegistry Ecom/zaxxer/hikari/metrics/dropwizard/Dropwizard5MetricsTrackerFactory %io/dropwizard/metrics5/MetricRegistryHq +io.micrometer.core.instrument.MeterRegistry Dcom/zaxxer/hikari/metrics/micrometer/MicrometerMetricsTrackerFactory +io/micrometer/core/instrument/MeterRegistryHr 6com/zaxxer/hikari/pool/PoolBase$MetricsTrackerDelegate MetricsTrackerDelegates???tuvHw 9com/zaxxer/hikari/pool/PoolBase$NopMetricsTrackerDelegate NopMetricsTrackerDelegate /com/codahale/metrics/health/HealthCheckRegistryxyz{|}~?????????t??????? java/lang/IllegalStateException?Hh?h???h? ={} - {}stats (total={}/{}, idle={}/{}, active={}, waiting={}) java/lang/Object ??????????????h endRequest Failed for: {},({})????a\h?????????????? 1com/zaxxer/hikari/pool/HikariPool$MaxLifetimeTaskH?U???? /com/zaxxer/hikari/pool/HikariPool$KeepaliveTask?? 8com/zaxxer/hikari/pool/PoolBase$ConnectionSetupException ={} - Error thrown while acquiring connection from data source???T????t java/lang/Exception /{} - Cannot acquire connection from data source?T L{} - Fill pool skipped, pool has sufficient level or currently being filled.???????? ?? java/lang/Throwable $(connection aborted during shutdown)?????? {} - Added connection {}?T 7(initialization check complete and minimumIdle is zero)???? =com/zaxxer/hikari/pool/HikariPool$PoolInitializationExceptionH??h??????? ?????? "java/util/concurrent/ThreadFactory 0java/util/concurrent/ScheduledThreadPoolExecutor 5java/util/concurrent/ThreadPoolExecutor$DiscardPolicy
DiscardPolicyH??????? #com/zaxxer/hikari/pool/HikariPool$1H? Timeout failure ?h???? (java/sql/SQLTransientConnectionException?)?H??????? 6com/zaxxer/hikari/util/UtilityElf$DefaultThreadFactory DefaultThreadFactory? (connection evicted) com/zaxxer/hikari/pool/PoolBase "com/zaxxer/hikari/HikariPoolMXBean 6com/zaxxer/hikari/util/ConcurrentBag$IBagStateListener IBagStateListener com/zaxxer/hikari/HikariConfig 'java/util/concurrent/ThreadPoolExecutor java/sql/Connection org/slf4j/Logger [Ljava/lang/Object; java/util/concurrent/Callable java/util/Iterator $java/util/concurrent/ExecutorService org/slf4j/LoggerFactory getLogger %(Ljava/lang/Class;)Lorg/slf4j/Logger; java/util/concurrent/TimeUnit MILLISECONDS Ljava/util/concurrent/TimeUnit; toMillis (J)J java/lang/Long getLong %(Ljava/lang/String;J)Ljava/lang/Long; longValue ()J SECONDS java/lang/Math max (JJ)J min java/lang/Boolean
getBoolean (Ljava/lang/String;)Z &(Lcom/zaxxer/hikari/pool/HikariPool;)V 8(Lcom/zaxxer/hikari/pool/HikariPool;Ljava/lang/String;)V ;(Lcom/zaxxer/hikari/util/ConcurrentBag$IBagStateListener;)V isAllowPoolSuspension ()Z FAUX_LOCK getMetricsTrackerFactory 3()Lcom/zaxxer/hikari/metrics/MetricsTrackerFactory; getMetricRegistry ()Ljava/lang/Object; getHealthCheckRegistry handleMBeans '(Lcom/zaxxer/hikari/pool/HikariPool;Z)V getThreadFactory getMaximumPoolSize poolName
?? :connection-adder makeConcatWithConstants &(Ljava/lang/String;)Ljava/lang/String; !com/zaxxer/hikari/util/UtilityElf createThreadPoolExecutor ?(Ljava/util/concurrent/BlockingQueue;Ljava/lang/String;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)Ljava/util/concurrent/ThreadPoolExecutor; :connection-closer ?(ILjava/lang/String;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)Ljava/util/concurrent/ThreadPoolExecutor; getLeakDetectionThreshold 3(JLjava/util/concurrent/ScheduledExecutorService;)V -java/util/concurrent/ScheduledExecutorService scheduleWithFixedDelay ](Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; getInitializationFailTimeout java/lang/Runtime
getRuntime ()Ljava/lang/Runtime; availableProcessors (II)I setMaximumPoolSize setCorePoolSize "com/zaxxer/hikari/util/ClockSource currentTime
elapsedMillis getMinimumIdle quietlySleep (J)V connectionTimeout acquire borrow \(JLjava/util/concurrent/TimeUnit;)Lcom/zaxxer/hikari/util/ConcurrentBag$IConcurrentBagEntry; isMarkedEvicted lastAccessed isConnectionDead (Ljava/sql/Connection;)Z metricsTracker IMetricsTrackerDelegate 9Lcom/zaxxer/hikari/pool/PoolBase$IMetricsTrackerDelegate; 7com/zaxxer/hikari/pool/PoolBase$IMetricsTrackerDelegate recordBorrowStats &(Lcom/zaxxer/hikari/pool/PoolEntry;J)V beginRequest
getMessage warn 9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V schedule J(Lcom/zaxxer/hikari/pool/PoolEntry;)Lcom/zaxxer/hikari/pool/ProxyLeakTask; createProxyConnection =(Lcom/zaxxer/hikari/pool/ProxyLeakTask;)Ljava/sql/Connection; release recordBorrowTimeoutStats java/lang/Thread
currentThread ()Ljava/lang/Thread; interrupt - - Interrupted during connection acquisition *(Ljava/lang/String;Ljava/lang/Throwable;)V close $java/util/concurrent/ScheduledFuture cancel (Z)Z getLoginTimeout awaitTermination #(JLjava/util/concurrent/TimeUnit;)Z (Ljava/lang/String;)V :connection-assassinator shutdownNetworkTimeoutExecutor cancelLeakTask getPoolEntry isClosed safeIsAssignableFrom '(Ljava/lang/Object;Ljava/lang/String;)Z ((Lcom/codahale/metrics/MetricRegistry;)V *(Lio/dropwizard/metrics5/MetricRegistry;)V 0(Lio/micrometer/core/instrument/MeterRegistry;)V getPoolName /com/zaxxer/hikari/metrics/MetricsTrackerFactory create d(Ljava/lang/String;Lcom/zaxxer/hikari/metrics/PoolStats;)Lcom/zaxxer/hikari/metrics/IMetricsTracker; .(Lcom/zaxxer/hikari/metrics/IMetricsTracker;)V :com/zaxxer/hikari/metrics/dropwizard/CodahaleHealthChecker registerHealthChecks w(Lcom/zaxxer/hikari/pool/HikariPool;Lcom/zaxxer/hikari/HikariConfig;Lcom/codahale/metrics/health/HealthCheckRegistry;)V getQueue &()Ljava/util/concurrent/BlockingQueue; "java/util/concurrent/BlockingQueue size submit >(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; getCount (I)I getWaitingThreadCount values ()Ljava/util/List;
??
? accept B(Lcom/zaxxer/hikari/pool/HikariPool;)Ljava/util/function/Consumer; java/util/List forEach (Ljava/util/function/Consumer;)V - is not suspendable suspend resume isDebugEnabled java/lang/Integer valueOf (I)Ljava/lang/Integer; debug ((Ljava/lang/String;[Ljava/lang/Object;)V recordConnectionUsage
endRequest requite =(Lcom/zaxxer/hikari/util/ConcurrentBag$IConcurrentBagEntry;)V remove =(Lcom/zaxxer/hikari/util/ConcurrentBag$IConcurrentBagEntry;)Z
? run `(Lcom/zaxxer/hikari/pool/HikariPool;Ljava/sql/Connection;Ljava/lang/String;)Ljava/lang/Runnable; execute (Ljava/lang/Runnable;)V getStateCounts newPoolEntry getMaxLifetime &java/util/concurrent/ThreadLocalRandom current *()Ljava/util/concurrent/ThreadLocalRandom; nextLong H(Lcom/zaxxer/hikari/pool/HikariPool;Lcom/zaxxer/hikari/pool/PoolEntry;)V \(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; setFutureEol )(Ljava/util/concurrent/ScheduledFuture;)V getKeepaliveTime setKeepalive getCause ()Ljava/lang/Throwable; error lastConnectionFailure -Ljava/util/concurrent/atomic/AtomicReference; +java/util/concurrent/atomic/AtomicReference set '(Ljava/lang/String;Ljava/lang/Object;)V (I)Ljava/util/List; iterator ()Ljava/util/Iterator; hasNext next abort "(Ljava/util/concurrent/Executor;)V quietlyCloseConnection add info getLastConnectionFailure ()Ljava/lang/Exception; markEvicted reserve getScheduledExecutor java/util/Optional
ofNullable ((Ljava/lang/Object;)Ljava/util/Optional;
? get B(Lcom/zaxxer/hikari/pool/HikariPool;)Ljava/util/function/Supplier; orElseGet 1(Ljava/util/function/Supplier;)Ljava/lang/Object; W(ILjava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V 1setExecuteExistingDelayedTasksAfterShutdownPolicy setRemoveOnCancelPolicy shutdownNow '(Lcom/zaxxer/hikari/pool/HikariPool;J)V recordConnectionTimeout getSQLState getErrorCode c - Connection is not available, request timed out after ms (total=, active=, idle=, waiting=) +(Ljava/lang/String;JIIII)Ljava/lang/String; =(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V setNextException (Ljava/sql/SQLException;)V
:housekeeper?)?????????? $java/lang/invoke/StringConcatFactory? Lookup ?(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; "java/lang/invoke/LambdaMetafactory metafactory ?(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;? %java/lang/invoke/MethodHandles$Lookup java/lang/invoke/MethodHandles 1 !" #$ % &