Class BaseGenericObjectPool<T>
- java.lang.Object
- 
- org.apache.tomcat.dbcp.pool2.BaseObject
- 
- org.apache.tomcat.dbcp.pool2.impl.BaseGenericObjectPool<T>
 
 
- 
- Type Parameters:
- T- Type of element pooled in this pool. This class is intended to be thread-safe.
 - Direct Known Subclasses:
- GenericKeyedObjectPool,- GenericObjectPool
 
 public abstract class BaseGenericObjectPool<T> extends BaseObject Base class that provides common functionality forGenericObjectPoolandGenericKeyedObjectPool. The primary reason this class exists is reduce code duplication between the two pool implementations.- Since:
- 2.0
 
- 
- 
Field SummaryFields Modifier and Type Field Description static intMEAN_TIMING_STATS_CACHE_SIZEThe size of the caches used to store historical data for some attributes so that rolling means may be calculated.
 - 
Constructor SummaryConstructors Constructor Description BaseGenericObjectPool(BaseObjectPoolConfig<T> config, java.lang.String jmxNameBase, java.lang.String jmxNamePrefix)Handles JMX registration (if required) and the initialization required for monitoring.
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidclose()Closes the pool, destroys the remaining idle objects and, if registered in JMX, deregisters it.abstract voidevict()PerformnumTestsidle object eviction tests, evicting examined objects that meet the criteria for eviction.booleangetBlockWhenExhausted()Returns whether to block when theborrowObject()method is invoked when the pool is exhausted (the maximum number of "active" objects has been reached).longgetBorrowedCount()The total number of objects successfully borrowed from this pool over the lifetime of the pool.longgetCreatedCount()The total number of objects created for this pool over the lifetime of the pool.java.lang.StringgetCreationStackTrace()Provides the stack trace for the call that created this pool.longgetDestroyedByBorrowValidationCount()The total number of objects destroyed by this pool as a result of failing validation duringborrowObject()over the lifetime of the pool.longgetDestroyedByEvictorCount()The total number of objects destroyed by the evictor associated with this pool over the lifetime of the pool.longgetDestroyedCount()The total number of objects destroyed by this pool over the lifetime of the pool.EvictionPolicy<T>getEvictionPolicy()Returns theEvictionPolicydefined for this pool.java.lang.StringgetEvictionPolicyClassName()Returns the name of theEvictionPolicyimplementation that is used by this pool.longgetEvictorShutdownTimeoutMillis()Gets the timeout that will be used when waiting for the Evictor to shutdown if this pool is closed and it is the only pool still using the the value for the Evictor.booleangetFairness()Returns whether or not the pool serves threads waiting to borrow objects fairly.javax.management.ObjectNamegetJmxName()Provides the name under which the pool has been registered with the platform MBean server ornullif the pool has not been registered.booleangetLifo()Returns whether the pool has LIFO (last in, first out) behavior with respect to idle objects - always returning the most recently used object from the pool, or as a FIFO (first in, first out) queue, where the pool always returns the oldest object in the idle object pool.longgetMaxBorrowWaitTimeMillis()The maximum time a thread has waited to borrow objects from the pool.intgetMaxTotal()Returns the maximum number of objects that can be allocated by the pool (checked out to clients, or idle awaiting checkout) at a given time.longgetMaxWaitMillis()Returns the maximum amount of time (in milliseconds) theborrowObject()method should block before throwing an exception when the pool is exhausted andgetBlockWhenExhausted()is true.longgetMeanActiveTimeMillis()The mean time objects are active for based on the lastMEAN_TIMING_STATS_CACHE_SIZEobjects returned to the pool.longgetMeanBorrowWaitTimeMillis()The mean time threads wait to borrow an object based on the lastMEAN_TIMING_STATS_CACHE_SIZEobjects borrowed from the pool.longgetMeanIdleTimeMillis()The mean time objects are idle for based on the lastMEAN_TIMING_STATS_CACHE_SIZEobjects borrowed from the pool.longgetMinEvictableIdleTimeMillis()Returns the minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)).abstract intgetNumIdle()The number of instances currently idle in this pool.intgetNumTestsPerEvictionRun()Returns the maximum number of objects to examine during each run (if any) of the idle object evictor thread.longgetReturnedCount()The total number of objects returned to this pool over the lifetime of the pool.longgetSoftMinEvictableIdleTimeMillis()Returns the minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)), with the extra condition that at leastminIdleobject instances remain in the pool.SwallowedExceptionListenergetSwallowedExceptionListener()The listener used (if any) to receive notifications of exceptions unavoidably swallowed by the pool.booleangetTestOnBorrow()Returns whether objects borrowed from the pool will be validated before being returned from theborrowObject()method.booleangetTestOnCreate()Returns whether objects created for the pool will be validated before being returned from theborrowObject()method.booleangetTestOnReturn()Returns whether objects borrowed from the pool will be validated when they are returned to the pool via thereturnObject()method.booleangetTestWhileIdle()Returns whether objects sitting idle in the pool will be validated by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)).longgetTimeBetweenEvictionRunsMillis()Returns the number of milliseconds to sleep between runs of the idle object evictor thread.booleanisClosed()Has this pool instance been closed.protected voidmarkReturningState(PooledObject<T> pooledObject)Marks the object as returning to the pool.voidsetBlockWhenExhausted(boolean blockWhenExhausted)Sets whether to block when theborrowObject()method is invoked when the pool is exhausted (the maximum number of "active" objects has been reached).protected voidsetConfig(BaseObjectPoolConfig<T> config)Initializes the receiver with the given configuration.voidsetEvictionPolicy(EvictionPolicy<T> evictionPolicy)Sets the eviction policy for this pool.voidsetEvictionPolicyClassName(java.lang.String evictionPolicyClassName)Sets the name of theEvictionPolicyimplementation that is used by this pool.voidsetEvictionPolicyClassName(java.lang.String evictionPolicyClassName, java.lang.ClassLoader classLoader)Sets the name of theEvictionPolicyimplementation that is used by this pool.voidsetEvictorShutdownTimeoutMillis(long evictorShutdownTimeoutMillis)Sets the timeout that will be used when waiting for the Evictor to shutdown if this pool is closed and it is the only pool still using the the value for the Evictor.voidsetLifo(boolean lifo)Sets whether the pool has LIFO (last in, first out) behavior with respect to idle objects - always returning the most recently used object from the pool, or as a FIFO (first in, first out) queue, where the pool always returns the oldest object in the idle object pool.voidsetMaxTotal(int maxTotal)Sets the cap on the number of objects that can be allocated by the pool (checked out to clients, or idle awaiting checkout) at a given time.voidsetMaxWaitMillis(long maxWaitMillis)Sets the maximum amount of time (in milliseconds) theborrowObject()method should block before throwing an exception when the pool is exhausted andgetBlockWhenExhausted()is true.voidsetMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis)Sets the minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)).voidsetNumTestsPerEvictionRun(int numTestsPerEvictionRun)Sets the maximum number of objects to examine during each run (if any) of the idle object evictor thread.voidsetSoftMinEvictableIdleTimeMillis(long softMinEvictableIdleTimeMillis)Sets the minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)), with the extra condition that at leastminIdleobject instances remain in the pool.voidsetSwallowedExceptionListener(SwallowedExceptionListener swallowedExceptionListener)The listener used (if any) to receive notifications of exceptions unavoidably swallowed by the pool.voidsetTestOnBorrow(boolean testOnBorrow)Sets whether objects borrowed from the pool will be validated before being returned from theborrowObject()method.voidsetTestOnCreate(boolean testOnCreate)Sets whether objects created for the pool will be validated before being returned from theborrowObject()method.voidsetTestOnReturn(boolean testOnReturn)Sets whether objects borrowed from the pool will be validated when they are returned to the pool via thereturnObject()method.voidsetTestWhileIdle(boolean testWhileIdle)Returns whether objects sitting idle in the pool will be validated by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)).voidsetTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis)Sets the number of milliseconds to sleep between runs of the idle object evictor thread.protected voidtoStringAppendFields(java.lang.StringBuilder builder)Used by sub-classes to include the fields defined by the sub-class in theBaseObject.toString()output.- 
Methods inherited from class org.apache.tomcat.dbcp.pool2.BaseObjecttoString
 
- 
 
- 
- 
- 
Field Detail- 
MEAN_TIMING_STATS_CACHE_SIZEpublic static final int MEAN_TIMING_STATS_CACHE_SIZE The size of the caches used to store historical data for some attributes so that rolling means may be calculated.- See Also:
- Constant Field Values
 
 
- 
 - 
Constructor Detail- 
BaseGenericObjectPoolpublic BaseGenericObjectPool(BaseObjectPoolConfig<T> config, java.lang.String jmxNameBase, java.lang.String jmxNamePrefix) Handles JMX registration (if required) and the initialization required for monitoring.- Parameters:
- config- Pool configuration
- jmxNameBase- The default base JMX name for the new pool unless overridden by the config
- jmxNamePrefix- Prefix to be used for JMX name for the new pool
 
 
- 
 - 
Method Detail- 
getMaxTotalpublic final int getMaxTotal() Returns the maximum number of objects that can be allocated by the pool (checked out to clients, or idle awaiting checkout) at a given time. When negative, there is no limit to the number of objects that can be managed by the pool at one time.- Returns:
- the cap on the total number of object instances managed by the pool.
- See Also:
- setMaxTotal(int)
 
 - 
setMaxTotalpublic final void setMaxTotal(int maxTotal) Sets the cap on the number of objects that can be allocated by the pool (checked out to clients, or idle awaiting checkout) at a given time. Use a negative value for no limit.- Parameters:
- maxTotal- The cap on the total number of object instances managed by the pool. Negative values mean that there is no limit to the number of objects allocated by the pool.
- See Also:
- getMaxTotal()
 
 - 
getBlockWhenExhaustedpublic final boolean getBlockWhenExhausted() Returns whether to block when theborrowObject()method is invoked when the pool is exhausted (the maximum number of "active" objects has been reached).- Returns:
- trueif- borrowObject()should block when the pool is exhausted
- See Also:
- setBlockWhenExhausted(boolean)
 
 - 
setBlockWhenExhaustedpublic final void setBlockWhenExhausted(boolean blockWhenExhausted) Sets whether to block when theborrowObject()method is invoked when the pool is exhausted (the maximum number of "active" objects has been reached).- Parameters:
- blockWhenExhausted-- trueif- borrowObject()should block when the pool is exhausted
- See Also:
- getBlockWhenExhausted()
 
 - 
setConfigprotected void setConfig(BaseObjectPoolConfig<T> config) Initializes the receiver with the given configuration.- Parameters:
- config- Initialization source.
 
 - 
getMaxWaitMillispublic final long getMaxWaitMillis() Returns the maximum amount of time (in milliseconds) theborrowObject()method should block before throwing an exception when the pool is exhausted andgetBlockWhenExhausted()is true. When less than 0, theborrowObject()method may block indefinitely.- Returns:
- the maximum number of milliseconds borrowObject()will block.
- See Also:
- setMaxWaitMillis(long),- setBlockWhenExhausted(boolean)
 
 - 
setMaxWaitMillispublic final void setMaxWaitMillis(long maxWaitMillis) Sets the maximum amount of time (in milliseconds) theborrowObject()method should block before throwing an exception when the pool is exhausted andgetBlockWhenExhausted()is true. When less than 0, theborrowObject()method may block indefinitely.- Parameters:
- maxWaitMillis- the maximum number of milliseconds- borrowObject()will block or negative for indefinitely.
- See Also:
- getMaxWaitMillis(),- setBlockWhenExhausted(boolean)
 
 - 
getLifopublic final boolean getLifo() Returns whether the pool has LIFO (last in, first out) behavior with respect to idle objects - always returning the most recently used object from the pool, or as a FIFO (first in, first out) queue, where the pool always returns the oldest object in the idle object pool.- Returns:
- trueif the pool is configured with LIFO behavior or- falseif the pool is configured with FIFO behavior
- See Also:
- setLifo(boolean)
 
 - 
getFairnesspublic final boolean getFairness() Returns whether or not the pool serves threads waiting to borrow objects fairly. True means that waiting threads are served as if waiting in a FIFO queue.- Returns:
- trueif waiting threads are to be served by the pool in arrival order
 
 - 
setLifopublic final void setLifo(boolean lifo) Sets whether the pool has LIFO (last in, first out) behavior with respect to idle objects - always returning the most recently used object from the pool, or as a FIFO (first in, first out) queue, where the pool always returns the oldest object in the idle object pool.- Parameters:
- lifo-- trueif the pool is to be configured with LIFO behavior or- falseif the pool is to be configured with FIFO behavior
- See Also:
- getLifo()
 
 - 
getTestOnCreatepublic final boolean getTestOnCreate() Returns whether objects created for the pool will be validated before being returned from theborrowObject()method. Validation is performed by thevalidateObject()method of the factory associated with the pool. If the object fails to validate, thenborrowObject()will fail.- Returns:
- trueif newly created objects are validated before being returned from the- borrowObject()method
- Since:
- 2.2
- See Also:
- setTestOnCreate(boolean)
 
 - 
setTestOnCreatepublic final void setTestOnCreate(boolean testOnCreate) Sets whether objects created for the pool will be validated before being returned from theborrowObject()method. Validation is performed by thevalidateObject()method of the factory associated with the pool. If the object fails to validate, thenborrowObject()will fail.- Parameters:
- testOnCreate-- trueif newly created objects should be validated before being returned from the- borrowObject()method
- Since:
- 2.2
- See Also:
- getTestOnCreate()
 
 - 
getTestOnBorrowpublic final boolean getTestOnBorrow() Returns whether objects borrowed from the pool will be validated before being returned from theborrowObject()method. Validation is performed by thevalidateObject()method of the factory associated with the pool. If the object fails to validate, it will be removed from the pool and destroyed, and a new attempt will be made to borrow an object from the pool.- Returns:
- trueif objects are validated before being returned from the- borrowObject()method
- See Also:
- setTestOnBorrow(boolean)
 
 - 
setTestOnBorrowpublic final void setTestOnBorrow(boolean testOnBorrow) Sets whether objects borrowed from the pool will be validated before being returned from theborrowObject()method. Validation is performed by thevalidateObject()method of the factory associated with the pool. If the object fails to validate, it will be removed from the pool and destroyed, and a new attempt will be made to borrow an object from the pool.- Parameters:
- testOnBorrow-- trueif objects should be validated before being returned from the- borrowObject()method
- See Also:
- getTestOnBorrow()
 
 - 
getTestOnReturnpublic final boolean getTestOnReturn() Returns whether objects borrowed from the pool will be validated when they are returned to the pool via thereturnObject()method. Validation is performed by thevalidateObject()method of the factory associated with the pool. Returning objects that fail validation are destroyed rather then being returned the pool.- Returns:
- trueif objects are validated on return to the pool via the- returnObject()method
- See Also:
- setTestOnReturn(boolean)
 
 - 
setTestOnReturnpublic final void setTestOnReturn(boolean testOnReturn) Sets whether objects borrowed from the pool will be validated when they are returned to the pool via thereturnObject()method. Validation is performed by thevalidateObject()method of the factory associated with the pool. Returning objects that fail validation are destroyed rather then being returned the pool.- Parameters:
- testOnReturn-- trueif objects are validated on return to the pool via the- returnObject()method
- See Also:
- getTestOnReturn()
 
 - 
getTestWhileIdlepublic final boolean getTestWhileIdle() Returns whether objects sitting idle in the pool will be validated by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)). Validation is performed by thevalidateObject()method of the factory associated with the pool. If the object fails to validate, it will be removed from the pool and destroyed.- Returns:
- trueif objects will be validated by the evictor
- See Also:
- setTestWhileIdle(boolean),- setTimeBetweenEvictionRunsMillis(long)
 
 - 
setTestWhileIdlepublic final void setTestWhileIdle(boolean testWhileIdle) Returns whether objects sitting idle in the pool will be validated by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)). Validation is performed by thevalidateObject()method of the factory associated with the pool. If the object fails to validate, it will be removed from the pool and destroyed. Note that setting this property has no effect unless the idle object evictor is enabled by settingtimeBetweenEvictionRunsMillisto a positive value.- Parameters:
- testWhileIdle-- trueso objects will be validated by the evictor
- See Also:
- getTestWhileIdle(),- setTimeBetweenEvictionRunsMillis(long)
 
 - 
getTimeBetweenEvictionRunsMillispublic final long getTimeBetweenEvictionRunsMillis() Returns the number of milliseconds to sleep between runs of the idle object evictor thread. When non-positive, no idle object evictor thread will be run.- Returns:
- number of milliseconds to sleep between evictor runs
- See Also:
- setTimeBetweenEvictionRunsMillis(long)
 
 - 
setTimeBetweenEvictionRunsMillispublic final void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) Sets the number of milliseconds to sleep between runs of the idle object evictor thread.- When positive, the idle object evictor thread starts.
- When non-positive, no idle object evictor thread runs.
 - Parameters:
- timeBetweenEvictionRunsMillis- number of milliseconds to sleep between evictor runs
- See Also:
- getTimeBetweenEvictionRunsMillis()
 
 - 
getNumTestsPerEvictionRunpublic final int getNumTestsPerEvictionRun() Returns the maximum number of objects to examine during each run (if any) of the idle object evictor thread. When positive, the number of tests performed for a run will be the minimum of the configured value and the number of idle instances in the pool. When negative, the number of tests performed will beceil(which means that when the value isgetNumIdle()/ abs(getNumTestsPerEvictionRun()))-nroughly one nth of the idle objects will be tested per run.- Returns:
- max number of objects to examine during each evictor run
- See Also:
- setNumTestsPerEvictionRun(int),- setTimeBetweenEvictionRunsMillis(long)
 
 - 
setNumTestsPerEvictionRunpublic final void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) Sets the maximum number of objects to examine during each run (if any) of the idle object evictor thread. When positive, the number of tests performed for a run will be the minimum of the configured value and the number of idle instances in the pool. When negative, the number of tests performed will beceil(which means that when the value isgetNumIdle()/ abs(getNumTestsPerEvictionRun()))-nroughly one nth of the idle objects will be tested per run.- Parameters:
- numTestsPerEvictionRun- max number of objects to examine during each evictor run
- See Also:
- getNumTestsPerEvictionRun(),- setTimeBetweenEvictionRunsMillis(long)
 
 - 
getMinEvictableIdleTimeMillispublic final long getMinEvictableIdleTimeMillis() Returns the minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)). When non-positive, no objects will be evicted from the pool due to idle time alone.- Returns:
- minimum amount of time an object may sit idle in the pool before it is eligible for eviction
- See Also:
- setMinEvictableIdleTimeMillis(long),- setTimeBetweenEvictionRunsMillis(long)
 
 - 
setMinEvictableIdleTimeMillispublic final void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) Sets the minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)). When non-positive, no objects will be evicted from the pool due to idle time alone.- Parameters:
- minEvictableIdleTimeMillis- minimum amount of time an object may sit idle in the pool before it is eligible for eviction
- See Also:
- getMinEvictableIdleTimeMillis(),- setTimeBetweenEvictionRunsMillis(long)
 
 - 
getSoftMinEvictableIdleTimeMillispublic final long getSoftMinEvictableIdleTimeMillis() Returns the minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)), with the extra condition that at leastminIdleobject instances remain in the pool. This setting is overridden bygetMinEvictableIdleTimeMillis()(that is, ifgetMinEvictableIdleTimeMillis()is positive, thengetSoftMinEvictableIdleTimeMillis()is ignored).- Returns:
- minimum amount of time an object may sit idle in the pool before it is eligible for eviction if minIdle instances are available
- See Also:
- setSoftMinEvictableIdleTimeMillis(long)
 
 - 
setSoftMinEvictableIdleTimeMillispublic final void setSoftMinEvictableIdleTimeMillis(long softMinEvictableIdleTimeMillis) Sets the minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any - seesetTimeBetweenEvictionRunsMillis(long)), with the extra condition that at leastminIdleobject instances remain in the pool. This setting is overridden bygetMinEvictableIdleTimeMillis()(that is, ifgetMinEvictableIdleTimeMillis()is positive, thengetSoftMinEvictableIdleTimeMillis()is ignored).- Parameters:
- softMinEvictableIdleTimeMillis- minimum amount of time an object may sit idle in the pool before it is eligible for eviction if minIdle instances are available
- See Also:
- getSoftMinEvictableIdleTimeMillis()
 
 - 
getEvictionPolicyClassNamepublic final java.lang.String getEvictionPolicyClassName() Returns the name of theEvictionPolicyimplementation that is used by this pool.- Returns:
- The fully qualified class name of the EvictionPolicy
- See Also:
- setEvictionPolicyClassName(String)
 
 - 
setEvictionPolicypublic void setEvictionPolicy(EvictionPolicy<T> evictionPolicy) Sets the eviction policy for this pool.- Parameters:
- evictionPolicy- the eviction policy for this pool.
- Since:
- 2.6.0
 
 - 
setEvictionPolicyClassNamepublic final void setEvictionPolicyClassName(java.lang.String evictionPolicyClassName, java.lang.ClassLoader classLoader)Sets the name of theEvictionPolicyimplementation that is used by this pool. The Pool will attempt to load the class using the given class loader. If that fails, use the class loader for theEvictionPolicyinterface.- Parameters:
- evictionPolicyClassName- the fully qualified class name of the new eviction policy
- classLoader- the class loader to load the given- evictionPolicyClassName.
- Since:
- 2.6.0 If loading the class using the given class loader fails, use the class loader for the
        EvictionPolicyinterface.
- See Also:
- getEvictionPolicyClassName()
 
 - 
setEvictionPolicyClassNamepublic final void setEvictionPolicyClassName(java.lang.String evictionPolicyClassName) Sets the name of theEvictionPolicyimplementation that is used by this pool. The Pool will attempt to load the class using the thread context class loader. If that fails, the use the class loader for theEvictionPolicyinterface.- Parameters:
- evictionPolicyClassName- the fully qualified class name of the new eviction policy
- Since:
- 2.6.0 If loading the class using the thread context class loader fails, use the class loader for the
        EvictionPolicyinterface.
- See Also:
- getEvictionPolicyClassName()
 
 - 
getEvictorShutdownTimeoutMillispublic final long getEvictorShutdownTimeoutMillis() Gets the timeout that will be used when waiting for the Evictor to shutdown if this pool is closed and it is the only pool still using the the value for the Evictor.- Returns:
- The timeout in milliseconds that will be used while waiting for the Evictor to shut down.
 
 - 
setEvictorShutdownTimeoutMillispublic final void setEvictorShutdownTimeoutMillis(long evictorShutdownTimeoutMillis) Sets the timeout that will be used when waiting for the Evictor to shutdown if this pool is closed and it is the only pool still using the the value for the Evictor.- Parameters:
- evictorShutdownTimeoutMillis- the timeout in milliseconds that will be used while waiting for the Evictor to shut down.
 
 - 
closepublic abstract void close() Closes the pool, destroys the remaining idle objects and, if registered in JMX, deregisters it.
 - 
isClosedpublic final boolean isClosed() Has this pool instance been closed.- Returns:
- truewhen this pool has been closed.
 
 - 
evictpublic abstract void evict() throws java.lang.ExceptionPerform numTestsidle object eviction tests, evicting examined objects that meet the criteria for eviction. IftestWhileIdleis true, examined objects are validated when visited (and removed if invalid); otherwise only objects that have been idle for more thanminEvicableIdleTimeMillisare removed.- Throws:
- java.lang.Exception- when there is a problem evicting idle objects.
 
 - 
getEvictionPolicypublic EvictionPolicy<T> getEvictionPolicy() Returns theEvictionPolicydefined for this pool.- Returns:
- the eviction policy
- Since:
- 2.4, 2.6.0 Changed access from protected to public.
 
 - 
getJmxNamepublic final javax.management.ObjectName getJmxName() Provides the name under which the pool has been registered with the platform MBean server ornullif the pool has not been registered.- Returns:
- the JMX name
 
 - 
getCreationStackTracepublic final java.lang.String getCreationStackTrace() Provides the stack trace for the call that created this pool. JMX registration may trigger a memory leak so it is important that pools are deregistered when no longer used by calling theclose()method. This method is provided to assist with identifying code that creates but does not close it thereby creating a memory leak.- Returns:
- pool creation stack trace
 
 - 
getBorrowedCountpublic final long getBorrowedCount() The total number of objects successfully borrowed from this pool over the lifetime of the pool.- Returns:
- the borrowed object count
 
 - 
getReturnedCountpublic final long getReturnedCount() The total number of objects returned to this pool over the lifetime of the pool. This excludes attempts to return the same object multiple times.- Returns:
- the returned object count
 
 - 
getCreatedCountpublic final long getCreatedCount() The total number of objects created for this pool over the lifetime of the pool.- Returns:
- the created object count
 
 - 
getDestroyedCountpublic final long getDestroyedCount() The total number of objects destroyed by this pool over the lifetime of the pool.- Returns:
- the destroyed object count
 
 - 
getDestroyedByEvictorCountpublic final long getDestroyedByEvictorCount() The total number of objects destroyed by the evictor associated with this pool over the lifetime of the pool.- Returns:
- the evictor destroyed object count
 
 - 
getDestroyedByBorrowValidationCountpublic final long getDestroyedByBorrowValidationCount() The total number of objects destroyed by this pool as a result of failing validation duringborrowObject()over the lifetime of the pool.- Returns:
- validation destroyed object count
 
 - 
getMeanActiveTimeMillispublic final long getMeanActiveTimeMillis() The mean time objects are active for based on the lastMEAN_TIMING_STATS_CACHE_SIZEobjects returned to the pool.- Returns:
- mean time an object has been checked out from the pool among recently returned objects
 
 - 
getMeanIdleTimeMillispublic final long getMeanIdleTimeMillis() The mean time objects are idle for based on the lastMEAN_TIMING_STATS_CACHE_SIZEobjects borrowed from the pool.- Returns:
- mean time an object has been idle in the pool among recently borrowed objects
 
 - 
getMeanBorrowWaitTimeMillispublic final long getMeanBorrowWaitTimeMillis() The mean time threads wait to borrow an object based on the lastMEAN_TIMING_STATS_CACHE_SIZEobjects borrowed from the pool.- Returns:
- mean time in milliseconds that a recently served thread has had to wait to borrow an object from the pool
 
 - 
getMaxBorrowWaitTimeMillispublic final long getMaxBorrowWaitTimeMillis() The maximum time a thread has waited to borrow objects from the pool.- Returns:
- maximum wait time in milliseconds since the pool was created
 
 - 
getNumIdlepublic abstract int getNumIdle() The number of instances currently idle in this pool.- Returns:
- count of instances available for checkout from the pool
 
 - 
getSwallowedExceptionListenerpublic final SwallowedExceptionListener getSwallowedExceptionListener() The listener used (if any) to receive notifications of exceptions unavoidably swallowed by the pool.- Returns:
- The listener or nullfor no listener
 
 - 
setSwallowedExceptionListenerpublic final void setSwallowedExceptionListener(SwallowedExceptionListener swallowedExceptionListener) The listener used (if any) to receive notifications of exceptions unavoidably swallowed by the pool.- Parameters:
- swallowedExceptionListener- The listener or- nullfor no listener
 
 - 
markReturningStateprotected void markReturningState(PooledObject<T> pooledObject) Marks the object as returning to the pool.- Parameters:
- pooledObject- instance to return to the keyed pool
 
 - 
toStringAppendFieldsprotected void toStringAppendFields(java.lang.StringBuilder builder) Description copied from class:BaseObjectUsed by sub-classes to include the fields defined by the sub-class in theBaseObject.toString()output.- Overrides:
- toStringAppendFieldsin class- BaseObject
- Parameters:
- builder- Field names and values are appended to this object
 
 
- 
 
-