org.apache.commons.pool.impl

Class GenericKeyedObjectPool

public class GenericKeyedObjectPool extends BaseKeyedObjectPool implements KeyedObjectPool

A configurable KeyedObjectPool implementation.

When coupled with the appropriate KeyedPoolableObjectFactory, GenericKeyedObjectPool provides robust pooling functionality for arbitrary objects.

A GenericKeyedObjectPool provides a number of configurable parameters:

Optionally, one may configure the pool to examine and possibly evict objects as they sit idle in the pool. This is performed by an "idle object eviction" thread, which runs asychronously. The idle object eviction thread may be configured using the following attributes:

GenericKeyedObjectPool is not usable without a KeyedPoolableObjectFactory. A non-null factory must be provided either as a constructor argument or via a call to GenericKeyedObjectPool before the pool is used.

Version: $Revision: 386116 $ $Date: 2006-03-15 12:15:58 -0500 (Wed, 15 Mar 2006) $

Author: Rodney Waldhoff Dirk Verbeeck

See Also: GenericObjectPool

Nested Class Summary
static classGenericKeyedObjectPool.Config
A simple "struct" encapsulating the configuration information for a GenericKeyedObjectPool.
Field Summary
static intDEFAULT_MAX_ACTIVE
The default cap on the total number of active instances from the pool (per key).
static intDEFAULT_MAX_IDLE
The default cap on the number of idle instances in the pool (per key).
static intDEFAULT_MAX_TOTAL
The default cap on the the maximum number of objects that can exists at one time.
static longDEFAULT_MAX_WAIT
The default maximum amount of time (in millis) the GenericKeyedObjectPool method should block before throwing an exception when the pool is exhausted and the "when exhausted" action is WHEN_EXHAUSTED_BLOCK.
static longDEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS
The default value for GenericKeyedObjectPool.
static intDEFAULT_MIN_IDLE
The default minimum level of idle objects in the pool.
static intDEFAULT_NUM_TESTS_PER_EVICTION_RUN
The default number of objects to examine per run in the idle object evictor.
static booleanDEFAULT_TEST_ON_BORROW
The default "test on borrow" value.
static booleanDEFAULT_TEST_ON_RETURN
The default "test on return" value.
static booleanDEFAULT_TEST_WHILE_IDLE
The default "test while idle" value.
static longDEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS
The default "time between eviction runs" value.
static byteDEFAULT_WHEN_EXHAUSTED_ACTION
The default "when exhausted action" for the pool.
static byteWHEN_EXHAUSTED_BLOCK
A "when exhausted action" type indicating that when the pool is exhausted (i.e., the maximum number of active objects has been reached), the GenericKeyedObjectPool method should block until a new object is available, or the maximum wait time has been reached.
static byteWHEN_EXHAUSTED_FAIL
A "when exhausted action" type indicating that when the pool is exhausted (i.e., the maximum number of active objects has been reached), the GenericKeyedObjectPool method should fail, throwing a NoSuchElementException.
static byteWHEN_EXHAUSTED_GROW
A "when exhausted action" type indicating that when the pool is exhausted (i.e., the maximum number of active objects has been reached), the GenericKeyedObjectPool method should simply create a new object anyway.
Constructor Summary
GenericKeyedObjectPool()
Create a new GenericKeyedObjectPool..
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory)
Create a new GenericKeyedObjectPool using the specified values.
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, GenericKeyedObjectPool.Config config)
Create a new GenericKeyedObjectPool using the specified values.
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive)
Create a new GenericKeyedObjectPool using the specified values.
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait)
Create a new GenericKeyedObjectPool using the specified values.
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, boolean testOnBorrow, boolean testOnReturn)
Create a new GenericKeyedObjectPool using the specified values.
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle)
Create a new GenericKeyedObjectPool using the specified values.
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, boolean testOnBorrow, boolean testOnReturn)
Create a new GenericKeyedObjectPool using the specified values.
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle)
Create a new GenericKeyedObjectPool using the specified values.
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle)
Create a new GenericKeyedObjectPool using the specified values.
GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, int minIdle, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle)
Create a new GenericKeyedObjectPool using the specified values.
Method Summary
voidaddObject(Object key)
ObjectborrowObject(Object key)
voidclear()
voidclear(Object key)
voidclearOldest()
Method clears oldest 15% of objects in pool.
voidclose()
voidevict()
intgetMaxActive()
Returns the cap on the number of active instances from my pool (per key).
intgetMaxIdle()
Returns the cap on the number of "idle" instances in the pool.
intgetMaxTotal()
Returns the cap on the total number of instances from my pool if non-positive.
longgetMaxWait()
Returns the maximum amount of time (in milliseconds) the GenericKeyedObjectPool method should block before throwing an exception when the pool is exhausted and the "when exhausted" action is WHEN_EXHAUSTED_BLOCK.
longgetMinEvictableIdleTimeMillis()
Returns the minimum amount of time an object may sit idle in the pool before it is eligable for eviction by the idle object evictor (if any).
intgetMinIdle()
Returns the minimum number of idle objects in pool to maintain (per key)
intgetNumActive()
intgetNumActive(Object key)
intgetNumIdle()
intgetNumIdle(Object key)
intgetNumTestsPerEvictionRun()
Returns the number of objects to examine during each run of the idle object evictor thread (if any).
booleangetTestOnBorrow()
When true, objects will be validated before being returned by the GenericKeyedObjectPool method.
booleangetTestOnReturn()
When true, objects will be validated before being returned to the pool within the GenericKeyedObjectPool.
booleangetTestWhileIdle()
When true, objects will be validated by the idle object evictor (if any).
longgetTimeBetweenEvictionRunsMillis()
Returns the number of milliseconds to sleep between runs of the idle object evictor thread.
bytegetWhenExhaustedAction()
Returns the action to take when the GenericKeyedObjectPool method is invoked when the pool is exhausted (the maximum number of "active" objects has been reached).
voidinvalidateObject(Object key, Object obj)
voidpreparePool(Object key, boolean populateImmediately)
Registers a key for pool control.
voidreturnObject(Object key, Object obj)
voidsetConfig(GenericKeyedObjectPool.Config conf)
Sets my configuration.
voidsetFactory(KeyedPoolableObjectFactory factory)
voidsetMaxActive(int maxActive)
Sets the cap on the number of active instances from my pool (per key).
voidsetMaxIdle(int maxIdle)
Sets the cap on the number of "idle" instances in the pool.
voidsetMaxTotal(int maxTotal)
Sets the cap on the total number of instances from my pool if non-positive.
voidsetMaxWait(long maxWait)
Sets the maximum amount of time (in milliseconds) the GenericKeyedObjectPool method should block before throwing an exception when the pool is exhausted and the "when exhausted" action is WHEN_EXHAUSTED_BLOCK.
voidsetMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis)
Sets the minimum amount of time an object may sit idle in the pool before it is eligable for eviction by the idle object evictor (if any).
voidsetMinIdle(int poolSize)
Sets the minimum number of idle objects in pool to maintain (per key)
voidsetNumTestsPerEvictionRun(int numTestsPerEvictionRun)
Sets the number of objects to examine during each run of the idle object evictor thread (if any).
voidsetTestOnBorrow(boolean testOnBorrow)
When true, objects will be validated before being returned by the GenericKeyedObjectPool method.
voidsetTestOnReturn(boolean testOnReturn)
When true, objects will be validated before being returned to the pool within the GenericKeyedObjectPool.
voidsetTestWhileIdle(boolean testWhileIdle)
When true, objects will be validated by the idle object evictor (if any).
voidsetTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis)
Sets the number of milliseconds to sleep between runs of the idle object evictor thread.
voidsetWhenExhaustedAction(byte whenExhaustedAction)
Sets the action to take when the GenericKeyedObjectPool method is invoked when the pool is exhausted (the maximum number of "active" objects has been reached).

Field Detail

DEFAULT_MAX_ACTIVE

public static final int DEFAULT_MAX_ACTIVE
The default cap on the total number of active instances from the pool (per key).

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_MAX_IDLE

public static final int DEFAULT_MAX_IDLE
The default cap on the number of idle instances in the pool (per key).

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_MAX_TOTAL

public static final int DEFAULT_MAX_TOTAL
The default cap on the the maximum number of objects that can exists at one time.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_MAX_WAIT

public static final long DEFAULT_MAX_WAIT
The default maximum amount of time (in millis) the GenericKeyedObjectPool method should block before throwing an exception when the pool is exhausted and the "when exhausted" action is WHEN_EXHAUSTED_BLOCK.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS

public static final long DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS
The default value for GenericKeyedObjectPool.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_MIN_IDLE

public static final int DEFAULT_MIN_IDLE
The default minimum level of idle objects in the pool.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_NUM_TESTS_PER_EVICTION_RUN

public static final int DEFAULT_NUM_TESTS_PER_EVICTION_RUN
The default number of objects to examine per run in the idle object evictor.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_TEST_ON_BORROW

public static final boolean DEFAULT_TEST_ON_BORROW
The default "test on borrow" value.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_TEST_ON_RETURN

public static final boolean DEFAULT_TEST_ON_RETURN
The default "test on return" value.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_TEST_WHILE_IDLE

public static final boolean DEFAULT_TEST_WHILE_IDLE
The default "test while idle" value.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS

public static final long DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS
The default "time between eviction runs" value.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

DEFAULT_WHEN_EXHAUSTED_ACTION

public static final byte DEFAULT_WHEN_EXHAUSTED_ACTION
The default "when exhausted action" for the pool.

See Also: WHEN_EXHAUSTED_BLOCK WHEN_EXHAUSTED_FAIL WHEN_EXHAUSTED_GROW GenericKeyedObjectPool

WHEN_EXHAUSTED_BLOCK

public static final byte WHEN_EXHAUSTED_BLOCK
A "when exhausted action" type indicating that when the pool is exhausted (i.e., the maximum number of active objects has been reached), the GenericKeyedObjectPool method should block until a new object is available, or the maximum wait time has been reached.

See Also: WHEN_EXHAUSTED_FAIL WHEN_EXHAUSTED_GROW GenericKeyedObjectPool GenericKeyedObjectPool GenericKeyedObjectPool

WHEN_EXHAUSTED_FAIL

public static final byte WHEN_EXHAUSTED_FAIL
A "when exhausted action" type indicating that when the pool is exhausted (i.e., the maximum number of active objects has been reached), the GenericKeyedObjectPool method should fail, throwing a NoSuchElementException.

See Also: WHEN_EXHAUSTED_BLOCK WHEN_EXHAUSTED_GROW GenericKeyedObjectPool

WHEN_EXHAUSTED_GROW

public static final byte WHEN_EXHAUSTED_GROW
A "when exhausted action" type indicating that when the pool is exhausted (i.e., the maximum number of active objects has been reached), the GenericKeyedObjectPool method should simply create a new object anyway.

See Also: WHEN_EXHAUSTED_FAIL WHEN_EXHAUSTED_GROW GenericKeyedObjectPool

Constructor Detail

GenericKeyedObjectPool

public GenericKeyedObjectPool()
Create a new GenericKeyedObjectPool..

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)KeyedPoolableObjectFactory to use to create, validate and destroy objects

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, GenericKeyedObjectPool.Config config)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)KeyedPoolableObjectFactory to use to create, validate and destroy objects config a non-null Config describing my configuration

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)KeyedPoolableObjectFactory to use to create, validate and destroy objects maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see GenericKeyedObjectPool)

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)KeyedPoolableObjectFactory to use to create, validate and destroy objects maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see GenericKeyedObjectPool) whenExhaustedAction the action to take when the pool is exhausted (see GenericKeyedObjectPool) maxWait the maximum amount of time to wait for an idle object when the pool is exhausted an and whenExhaustedAction is WHEN_EXHAUSTED_BLOCK (otherwise ignored) (see GenericKeyedObjectPool)

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, boolean testOnBorrow, boolean testOnReturn)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)KeyedPoolableObjectFactory to use to create, validate and destroy objects maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see GenericKeyedObjectPool) maxWait the maximum amount of time to wait for an idle object when the pool is exhausted an and whenExhaustedAction is WHEN_EXHAUSTED_BLOCK (otherwise ignored) (see GenericKeyedObjectPool) whenExhaustedAction the action to take when the pool is exhausted (see GenericKeyedObjectPool) testOnBorrow whether or not to validate objects before they are returned by the GenericKeyedObjectPool method (see GenericKeyedObjectPool) testOnReturn whether or not to validate objects after they are returned to the GenericKeyedObjectPool method (see GenericKeyedObjectPool)

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)KeyedPoolableObjectFactory to use to create, validate and destroy objects maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see GenericKeyedObjectPool) whenExhaustedAction the action to take when the pool is exhausted (see GenericKeyedObjectPool) maxWait the maximum amount of time to wait for an idle object when the pool is exhausted an and whenExhaustedAction is WHEN_EXHAUSTED_BLOCK (otherwise ignored) (see GenericKeyedObjectPool) maxIdle the maximum number of idle objects in my pool (per key) (see GenericKeyedObjectPool)

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, boolean testOnBorrow, boolean testOnReturn)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)KeyedPoolableObjectFactory to use to create, validate and destroy objects maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see GenericKeyedObjectPool) whenExhaustedAction the action to take when the pool is exhausted (see GenericKeyedObjectPool) maxWait the maximum amount of time to wait for an idle object when the pool is exhausted an and whenExhaustedAction is WHEN_EXHAUSTED_BLOCK (otherwise ignored) (see GenericKeyedObjectPool) maxIdle the maximum number of idle objects in my pool (see GenericKeyedObjectPool) testOnBorrow whether or not to validate objects before they are returned by the GenericKeyedObjectPool method (see GenericKeyedObjectPool) testOnReturn whether or not to validate objects after they are returned to the GenericKeyedObjectPool method (see GenericKeyedObjectPool)

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)PoolableObjectFactory to use to create, validate and destroy objects maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see GenericKeyedObjectPool) whenExhaustedAction the action to take when the pool is exhausted (see GenericKeyedObjectPool) maxWait the maximum amount of time to wait for an idle object when the pool is exhausted an and whenExhaustedAction is WHEN_EXHAUSTED_BLOCK (otherwise ignored) (see GenericKeyedObjectPool) maxIdle the maximum number of idle objects in my pool (see GenericKeyedObjectPool) testOnBorrow whether or not to validate objects before they are returned by the GenericKeyedObjectPool method (see GenericKeyedObjectPool) testOnReturn whether or not to validate objects after they are returned to the GenericKeyedObjectPool method (see GenericKeyedObjectPool) timeBetweenEvictionRunsMillis the amount of time (in milliseconds) to sleep between examining idle objects for eviction (see GenericKeyedObjectPool) numTestsPerEvictionRun the number of idle objects to examine per run within the idle object eviction thread (if any) (see GenericKeyedObjectPool) minEvictableIdleTimeMillis the minimum number of milliseconds an object can sit idle in the pool before it is eligable for evcition (see GenericKeyedObjectPool) testWhileIdle whether or not to validate objects in the idle object eviction thread, if any (see GenericKeyedObjectPool)

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)PoolableObjectFactory to use to create, validate and destroy objects maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see GenericKeyedObjectPool) whenExhaustedAction the action to take when the pool is exhausted (see GenericKeyedObjectPool) maxWait the maximum amount of time to wait for an idle object when the pool is exhausted an and whenExhaustedAction is WHEN_EXHAUSTED_BLOCK (otherwise ignored) (see GenericKeyedObjectPool) maxIdle the maximum number of idle objects in my pool (see GenericKeyedObjectPool) maxTotal the maximum number of objects that can exists at one time (see GenericKeyedObjectPool) testOnBorrow whether or not to validate objects before they are returned by the GenericKeyedObjectPool method (see GenericKeyedObjectPool) testOnReturn whether or not to validate objects after they are returned to the GenericKeyedObjectPool method (see GenericKeyedObjectPool) timeBetweenEvictionRunsMillis the amount of time (in milliseconds) to sleep between examining idle objects for eviction (see GenericKeyedObjectPool) numTestsPerEvictionRun the number of idle objects to examine per run within the idle object eviction thread (if any) (see GenericKeyedObjectPool) minEvictableIdleTimeMillis the minimum number of milliseconds an object can sit idle in the pool before it is eligable for evcition (see GenericKeyedObjectPool) testWhileIdle whether or not to validate objects in the idle object eviction thread, if any (see GenericKeyedObjectPool)

GenericKeyedObjectPool

public GenericKeyedObjectPool(KeyedPoolableObjectFactory factory, int maxActive, byte whenExhaustedAction, long maxWait, int maxIdle, int maxTotal, int minIdle, boolean testOnBorrow, boolean testOnReturn, long timeBetweenEvictionRunsMillis, int numTestsPerEvictionRun, long minEvictableIdleTimeMillis, boolean testWhileIdle)
Create a new GenericKeyedObjectPool using the specified values.

Parameters: factory the (possibly null)PoolableObjectFactory to use to create, validate and destroy objects maxActive the maximum number of objects that can be borrowed from me at one time (per key) (see GenericKeyedObjectPool) whenExhaustedAction the action to take when the pool is exhausted (see GenericKeyedObjectPool) maxWait the maximum amount of time to wait for an idle object when the pool is exhausted an and whenExhaustedAction is WHEN_EXHAUSTED_BLOCK (otherwise ignored) (see GenericKeyedObjectPool) maxIdle the maximum number of idle objects in my pool (see GenericKeyedObjectPool) maxTotal the maximum number of objects that can exists at one time (see GenericKeyedObjectPool) minIdle the minimum number of idle objects to have in the pool at any one time (see GenericKeyedObjectPool) testOnBorrow whether or not to validate objects before they are returned by the GenericKeyedObjectPool method (see GenericKeyedObjectPool) testOnReturn whether or not to validate objects after they are returned to the GenericKeyedObjectPool method (see GenericKeyedObjectPool) timeBetweenEvictionRunsMillis the amount of time (in milliseconds) to sleep between examining idle objects for eviction (see GenericKeyedObjectPool) numTestsPerEvictionRun the number of idle objects to examine per run within the idle object eviction thread (if any) (see GenericKeyedObjectPool) minEvictableIdleTimeMillis the minimum number of milliseconds an object can sit idle in the pool before it is eligable for evcition (see GenericKeyedObjectPool) testWhileIdle whether or not to validate objects in the idle object eviction thread, if any (see GenericKeyedObjectPool)

Method Detail

addObject

public void addObject(Object key)

borrowObject

public Object borrowObject(Object key)

clear

public void clear()

clear

public void clear(Object key)

clearOldest

public void clearOldest()
Method clears oldest 15% of objects in pool. The method sorts the objects into a TreeMap and then iterates the first 15% for removal

close

public void close()

evict

public void evict()

getMaxActive

public int getMaxActive()
Returns the cap on the number of active instances from my pool (per key).

Returns: the cap on the number of active instances from my pool (per key).

See Also: GenericKeyedObjectPool

getMaxIdle

public int getMaxIdle()
Returns the cap on the number of "idle" instances in the pool.

Returns: the cap on the number of "idle" instances in the pool.

See Also: GenericKeyedObjectPool

getMaxTotal

public int getMaxTotal()
Returns the cap on the total number of instances from my pool if non-positive.

Returns: the cap on the total number of instances from my pool if non-positive.

See Also: GenericKeyedObjectPool

getMaxWait

public long getMaxWait()
Returns the maximum amount of time (in milliseconds) the GenericKeyedObjectPool method should block before throwing an exception when the pool is exhausted and the "when exhausted" action is WHEN_EXHAUSTED_BLOCK. When less than 0, the GenericKeyedObjectPool method may block indefinitely.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool WHEN_EXHAUSTED_BLOCK

getMinEvictableIdleTimeMillis

public long getMinEvictableIdleTimeMillis()
Returns the minimum amount of time an object may sit idle in the pool before it is eligable for eviction by the idle object evictor (if any).

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

getMinIdle

public int getMinIdle()
Returns the minimum number of idle objects in pool to maintain (per key)

Returns: the minimum number of idle objects in pool to maintain (per key)

See Also: GenericKeyedObjectPool

getNumActive

public int getNumActive()

getNumActive

public int getNumActive(Object key)

getNumIdle

public int getNumIdle()

getNumIdle

public int getNumIdle(Object key)

getNumTestsPerEvictionRun

public int getNumTestsPerEvictionRun()
Returns the number of objects to examine during each run of the idle object evictor thread (if any).

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

getTestOnBorrow

public boolean getTestOnBorrow()
When true, objects will be validated before being returned by the GenericKeyedObjectPool method. If the object fails to validate, it will be dropped from the pool, and we will attempt to borrow another.

See Also: GenericKeyedObjectPool

getTestOnReturn

public boolean getTestOnReturn()
When true, objects will be validated before being returned to the pool within the GenericKeyedObjectPool.

See Also: GenericKeyedObjectPool

getTestWhileIdle

public boolean getTestWhileIdle()
When true, objects will be validated by the idle object evictor (if any). If an object fails to validate, it will be dropped from the pool.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

getTimeBetweenEvictionRunsMillis

public 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.

See Also: GenericKeyedObjectPool

getWhenExhaustedAction

public byte getWhenExhaustedAction()
Returns the action to take when the GenericKeyedObjectPool method is invoked when the pool is exhausted (the maximum number of "active" objects has been reached).

Returns: one of WHEN_EXHAUSTED_BLOCK, WHEN_EXHAUSTED_FAIL or WHEN_EXHAUSTED_GROW

See Also: GenericKeyedObjectPool

invalidateObject

public void invalidateObject(Object key, Object obj)

preparePool

public void preparePool(Object key, boolean populateImmediately)
Registers a key for pool control. If populateImmediately is true, the pool will immediately commence a sustain cycle. If populateImmediately is false, the pool will be populated when the next schedules sustain task is run.

Parameters: key - The key to register for pool control. populateImmediately - If this is true, the pool will start a sustain cycle immediately.

returnObject

public void returnObject(Object key, Object obj)

setConfig

public void setConfig(GenericKeyedObjectPool.Config conf)
Sets my configuration.

See Also: Config

setFactory

public void setFactory(KeyedPoolableObjectFactory factory)

setMaxActive

public void setMaxActive(int maxActive)
Sets the cap on the number of active instances from my pool (per key).

Parameters: maxActive The cap on the number of active instances from my pool (per key). Use a negative value for an infinite number of instances.

See Also: GenericKeyedObjectPool

setMaxIdle

public void setMaxIdle(int maxIdle)
Sets the cap on the number of "idle" instances in the pool.

Parameters: maxIdle The cap on the number of "idle" instances in the pool. Use a negative value to indicate an unlimited number of idle instances.

See Also: GenericKeyedObjectPool

setMaxTotal

public void setMaxTotal(int maxTotal)
Sets the cap on the total number of instances from my pool if non-positive.

Parameters: maxTotal The cap on the total number of instances from my pool. Use a non-positive value for an infinite number of instances.

See Also: GenericKeyedObjectPool

setMaxWait

public void setMaxWait(long maxWait)
Sets the maximum amount of time (in milliseconds) the GenericKeyedObjectPool method should block before throwing an exception when the pool is exhausted and the "when exhausted" action is WHEN_EXHAUSTED_BLOCK. When less than 0, the GenericKeyedObjectPool method may block indefinitely.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool WHEN_EXHAUSTED_BLOCK

setMinEvictableIdleTimeMillis

public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis)
Sets the minimum amount of time an object may sit idle in the pool before it is eligable for eviction by the idle object evictor (if any). When non-positive, no objects will be evicted from the pool due to idle time alone.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

setMinIdle

public void setMinIdle(int poolSize)
Sets the minimum number of idle objects in pool to maintain (per key)

Parameters: poolSize - The minimum size of the pool

See Also: GenericKeyedObjectPool

setNumTestsPerEvictionRun

public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun)
Sets the number of objects to examine during each run of the idle object evictor thread (if any).

When a negative value is supplied, ceil(GenericKeyedObjectPool)/abs(GenericKeyedObjectPool) tests will be run. I.e., when the value is -n, roughly one nth of the idle objects will be tested per run.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

setTestOnBorrow

public void setTestOnBorrow(boolean testOnBorrow)
When true, objects will be validated before being returned by the GenericKeyedObjectPool method. If the object fails to validate, it will be dropped from the pool, and we will attempt to borrow another.

See Also: GenericKeyedObjectPool

setTestOnReturn

public void setTestOnReturn(boolean testOnReturn)
When true, objects will be validated before being returned to the pool within the GenericKeyedObjectPool.

See Also: GenericKeyedObjectPool

setTestWhileIdle

public void setTestWhileIdle(boolean testWhileIdle)
When true, objects will be validated by the idle object evictor (if any). If an object fails to validate, it will be dropped from the pool.

See Also: GenericKeyedObjectPool GenericKeyedObjectPool

setTimeBetweenEvictionRunsMillis

public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis)
Sets 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.

See Also: GenericKeyedObjectPool

setWhenExhaustedAction

public void setWhenExhaustedAction(byte whenExhaustedAction)
Sets the action to take when the GenericKeyedObjectPool method is invoked when the pool is exhausted (the maximum number of "active" objects has been reached).

Parameters: whenExhaustedAction the action code, which must be one of WHEN_EXHAUSTED_BLOCK, WHEN_EXHAUSTED_FAIL, or WHEN_EXHAUSTED_GROW

See Also: GenericKeyedObjectPool

Copyright © 2001-2003 Apache Software Foundation. Documenation generated August 23 2012.