public class BaseObjectPool<K,V> extends Object implements ObjectPool<K,V>
ObjectPool for high performance and scalability
This class should be thread-safe.| Modifier and Type | Class and Description |
|---|---|
static class |
BaseObjectPool.Builder<K,V> |
| Modifier and Type | Method and Description |
|---|---|
V |
borrowObject(K key,
long timeoutInMillis)
Obtains an instance from this pool
Instances returned from this method will have been either newly created with
createObject or will be a previously idle object and
then validated with validateObject. |
void |
createAllMinObjects(K key)
Create objects using the
factory until pool's minimum size, and then place them in the idle object pool
createAllMinObjects is useful for "pre-loading" a pool with idle objects. |
void |
destroy()
Destroy this pool, and free any resources associated with it
Calling other methods such as
createAllMinObjects or borrowObject,
returnObject or removeObject or removeAllObjects after invoking
this method on a pool will cause them to throw an IllegalStateException. |
int |
getActiveCount(K key)
Returns the number of instances currently borrowed from but not yet returned to the pool
|
int |
getIdleCount(K key)
Returns the number of instances currently idle in this pool
|
long |
getKeepAliveTimeoutInSecs() |
int |
getMax() |
int |
getMin() |
int |
getPeakCount(K key)
Returns the total peak number of instances
|
int |
getPoolSize(K key)
Returns the total number of instances
|
boolean |
isBorrowValidation() |
boolean |
isDisposable() |
boolean |
isReturnValidation() |
void |
removeAllObjects(K key)
Clears the specified pool, removing all pooled instances corresponding to the given
key |
void |
removeObject(K key,
V value)
Removes(invalidates) an object from the pool
By contract,
value should have been obtained
using borrowObject using a key that is equivalent to the one used to
borrow the instance in the first place. |
void |
returnObject(K key,
V value)
Return an instance to the pool
By contract,
value should have been obtained
using borrowObject using a key that is equivalent to the one used to
borrow the instance in the first place. |
String |
toString() |
public void createAllMinObjects(K key) throws NoValidObjectException
factory until pool's minimum size, and then place them in the idle object pool
createAllMinObjects is useful for "pre-loading" a pool with idle objects.createAllMinObjects in interface ObjectPool<K,V>key - the key new instances should be added toNoValidObjectExceptionpublic void removeAllObjects(K key)
keyremoveAllObjects in interface ObjectPool<K,V>key - the key to clearpublic V borrowObject(K key, long timeoutInMillis) throws PoolExhaustedException, NoValidObjectException, InterruptedException
createObject or will be a previously idle object and
then validated with validateObject.
By contract, clients should return the borrowed instance using
returnObject, removeObject
When the pool has been exhausted, a PoolExhaustedException will be thrown.borrowObject in interface ObjectPool<K,V>key - the key used to obtain the objecttimeoutInMillis - the max time(milli-second) for borrowing the object. If the pool cannot return an instance in given time,
PoolExhaustedException will be thrown.PoolExhaustedException - when the pool is exhaustedNoValidObjectException - when the pool cannot or will not return another instanceInterruptedException - when the pool is interruptedpublic void returnObject(K key, V value)
value should have been obtained
using borrowObject using a key that is equivalent to the one used to
borrow the instance in the first place.returnObject in interface ObjectPool<K,V>key - the key used to obtain the objectvalue - a borrowed instance to be returnedpublic void removeObject(K key, V value)
value should have been obtained
using borrowObject using a key that is equivalent to the one used to
borrow the instance in the first place.
This method should be used when an object that has been borrowed
is determined (due to an exception or other problem) to be invalid.removeObject in interface ObjectPool<K,V>key - the key used to obtain the objectvalue - a borrowed instance to be removedpublic void destroy()
createAllMinObjects or borrowObject,
returnObject or removeObject or removeAllObjects after invoking
this method on a pool will cause them to throw an IllegalStateException.
destroy in interface ObjectPool<K,V>public int getPoolSize(K key)
getPoolSize in interface ObjectPool<K,V>key - the key to querykey currently idle and active in this pool or a negative value if unsupportedpublic int getPeakCount(K key)
getPeakCount in interface ObjectPool<K,V>key - the key to querykey or a negative value if unsupportedpublic int getActiveCount(K key)
getActiveCount in interface ObjectPool<K,V>key - the key to querykey currently borrowed in this pool or a negative value if unsupportedpublic int getIdleCount(K key)
getIdleCount in interface ObjectPool<K,V>key - the key to querykey currently idle in this pool or a negative value if unsupportedpublic int getMin()
public int getMax()
public boolean isBorrowValidation()
public boolean isReturnValidation()
public boolean isDisposable()
public long getKeepAliveTimeoutInSecs()
Copyright © 2020. All rights reserved.