Added: websites/production/commons/content/proper/commons-pool/api-2.3/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html ============================================================================== --- websites/production/commons/content/proper/commons-pool/api-2.3/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html (added) +++ websites/production/commons/content/proper/commons-pool/api-2.3/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html Wed Dec 31 14:00:19 2014 @@ -0,0 +1,1136 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-1"> +<title>GenericKeyedObjectPool (Apache Commons Pool 2.3 API)</title> +<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="GenericKeyedObjectPool (Apache Commons Pool 2.3 API)"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="class-use/GenericKeyedObjectPool.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../org/apache/commons/pool2/impl/EvictionPolicy.html" title="interface in org.apache.commons.pool2.impl"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.html" title="class in org.apache.commons.pool2.impl"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" target="_top">Frames</a></li> +<li><a href="GenericKeyedObjectPool.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields_inherited_from_class_org.apache.commons.pool2.impl.BaseGenericObjectPool">Field</a> | </li> +<li><a href="#constructor_summary">Constr</a> | </li> +<li><a href="#method_summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor_detail">Constr</a> | </li> +<li><a href="#method_detail">Method</a></li> +</ul> +</div> +<a name="skip-navbar_top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">org.apache.commons.pool2.impl</div> +<h2 title="Class GenericKeyedObjectPool" class="title">Class GenericKeyedObjectPool<K,T></h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html" title="class in org.apache.commons.pool2.impl">org.apache.commons.pool2.impl.BaseGenericObjectPool</a><T></li> +<li> +<ul class="inheritance"> +<li>org.apache.commons.pool2.impl.GenericKeyedObjectPool<K,T></li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>K</code> - The type of keys maintained by this pool.</dd><dd><code>T</code> - Type of element pooled in this pool.</dd></dl> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html" title="interface in org.apache.commons.pool2.impl">GenericKeyedObjectPoolMXBean</a><K>, <a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><K,T></dd> +</dl> +<hr> +<br> +<pre>public class <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.77">GenericKeyedObjectPool</a><K,T> +extends <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html" title="class in org.apache.commons.pool2.impl">BaseGenericObjectPool</a><T> +implements <a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><K,T>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html" title="interface in org.apache.commons.pool2.impl">GenericKeyedObjectPoolMXBean</a><K></pre> +<div class="block">A configurable <code>KeyedObjectPool</code> implementation. + <p> + When coupled with the appropriate <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2"><code>KeyedPooledObjectFactory</code></a>, + <code>GenericKeyedObjectPool</code> provides robust pooling functionality for + keyed objects. A <code>GenericKeyedObjectPool</code> can be viewed as a map + of sub-pools, keyed on the (unique) key values provided to the + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#preparePool(K)"><code>preparePool</code></a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#addObject(K)"><code>addObject</code></a> or + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#borrowObject(K)"><code>borrowObject</code></a> methods. Each time a new key value is + provided to one of these methods, a sub-new pool is created under the given + key to be managed by the containing <code>GenericKeyedObjectPool.</code> + <p> + Optionally, one may configure the pool to examine and possibly evict objects + as they sit idle in the pool and to ensure that a minimum number of idle + objects is maintained for each key. This is performed by an "idle object + eviction" thread, which runs asynchronously. Caution should be used when + configuring this optional feature. Eviction runs contend with client threads + for access to objects in the pool, so if they run too frequently performance + issues may result. + <p> + Implementation note: To prevent possible deadlocks, care has been taken to + ensure that no call to a factory method will occur within a synchronization + block. See POOL-125 and DBCP-44 for more information. + <p> + This class is intended to be thread-safe.</div> +<dl><dt><span class="strong">Since:</span></dt> + <dd>2.0</dd> +<dt><span class="strong">Version:</span></dt> + <dd>$Revision: 1627011 $</dd> +<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/commons/pool2/impl/GenericObjectPool.html" title="class in org.apache.commons.pool2.impl"><code>GenericObjectPool</code></a></dd></dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field_summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields_inherited_from_class_org.apache.commons.pool2.impl.BaseGenericObjectPool"> +<!-- --> +</a> +<h3>Fields inherited from class org.apache.commons.pool2.impl.<a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html" title="class in org.apache.commons.pool2.impl">BaseGenericObjectPool</a></h3> +<code><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#MEAN_TIMING_STATS_CACHE_SIZE">MEAN_TIMING_STATS_CACHE_SIZE</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor_summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#GenericKeyedObjectPool(org.apache.commons.pool2.KeyedPooledObjectFactory)">GenericKeyedObjectPool</a></strong>(<a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2">KeyedPooledObjectFactory</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>> factory)</code> +<div class="block">Create a new <code>GenericKeyedObjectPool</code> using defaults from + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.html" title="class in org.apache.commons.pool2.impl"><code>GenericKeyedObjectPoolConfig</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#GenericKeyedObjectPool(org.apache.commons.pool2.KeyedPooledObjectFactory,%20org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig)">GenericKeyedObjectPool</a></strong>(<a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2">KeyedPooledObjectFactory</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>> factory, + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.html" title="class in org.apache.commons.pool2.impl">GenericKeyedObjectPoolConfig</a> config)</code> +<div class="block">Create a new <code>GenericKeyedObjectPool</code> using a specific + configuration.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span>Methods</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#addObject(K)">addObject</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key)</code> +<div class="block">Create an object using the <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject(K)"><code>factory</code></a>, passivate it, and then place it in the idle object pool.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#borrowObject(K)">borrowObject</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key)</code> +<div class="block">Equivalent to <code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#borrowObject(K,%20long)"><code>borrowObject</code></a>(key, + <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getMaxWaitMillis()"><code>BaseGenericObjectPool.getMaxWaitMillis()</code></a>)</code>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#borrowObject(K,%20long)">borrowObject</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key, + long borrowMaxWaitMillis)</code> +<div class="block">Borrows an object from the sub-pool associated with the given key using + the specified waiting time which only applies if + <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getBlockWhenExhausted()"><code>BaseGenericObjectPool.getBlockWhenExhausted()</code></a> is true.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#clear()">clear</a></strong>()</code> +<div class="block">Clears any objects sitting idle in the pool by removing them from the + idle instance sub-pools and then invoking the configured + PoolableObjectFactory's + <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#destroyObject(K,%20org.apache.commons.pool2.PooledObject)"><code>KeyedPooledObjectFactory.destroyObject(Object, PooledObject)</code></a> + method on each idle instance.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#clear(K)">clear</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key)</code> +<div class="block">Clears the specified sub-pool, removing all pooled instances + corresponding to the given <code>key</code>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#clearOldest()">clearOldest</a></strong>()</code> +<div class="block">Clears oldest 15% of objects in pool.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#close()">close</a></strong>()</code> +<div class="block">Closes the keyed object pool.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#evict()">evict</a></strong>()</code> +<div class="block">Perform <code>numTests</code> idle object eviction tests, evicting + examined objects that meet the criteria for eviction.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2">KeyedPooledObjectFactory</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getFactory()">getFactory</a></strong>()</code> +<div class="block">Obtain a reference to the factory used to create, destroy and validate + the objects used by this pool.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMaxIdlePerKey()">getMaxIdlePerKey</a></strong>()</code> +<div class="block">Returns the cap on the number of "idle" instances per key in the pool.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMaxTotalPerKey()">getMaxTotalPerKey</a></strong>()</code> +<div class="block">Returns the limit on the number of object instances allocated by the pool + (checked out or idle), per key.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMinIdlePerKey()">getMinIdlePerKey</a></strong>()</code> +<div class="block">Returns the target for the minimum number of idle objects to maintain in + each of the keyed sub-pools.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumActive()">getNumActive</a></strong>()</code> +<div class="block">Returns the total number of instances current borrowed from this pool but + not yet returned.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumActive(K)">getNumActive</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key)</code> +<div class="block">Returns the number of instances currently borrowed from but not yet + returned to the pool corresponding to the given <code>key</code>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumActivePerKey()">getNumActivePerKey</a></strong>()</code> +<div class="block">See <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumActivePerKey()"><code>getNumActivePerKey()</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumIdle()">getNumIdle</a></strong>()</code> +<div class="block">The number of instances currently idle in this pool.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumIdle(K)">getNumIdle</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key)</code> +<div class="block">Returns the number of instances corresponding to the given + <code>key</code> currently idle in this pool.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumWaiters()">getNumWaiters</a></strong>()</code> +<div class="block">Return an estimate of the number of threads currently blocked waiting for + an object from the pool.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumWaitersByKey()">getNumWaitersByKey</a></strong>()</code> +<div class="block">Return an estimate of the number of threads currently blocked waiting for + an object from the pool for each key.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#invalidateObject(K,%20T)">invalidateObject</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key, + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a> obj)</code> +<div class="block">Invalidates an object from the pool.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../org/apache/commons/pool2/impl/DefaultPooledObjectInfo.html" title="class in org.apache.commons.pool2.impl">DefaultPooledObjectInfo</a>>></code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#listAllObjects()">listAllObjects</a></strong>()</code> +<div class="block">Provides information on all the objects in the pool, both idle (waiting + to be borrowed) and active (currently borrowed).</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#preparePool(K)">preparePool</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key)</code> +<div class="block">Registers a key for pool control and ensures that + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMinIdlePerKey()"><code>getMinIdlePerKey()</code></a> idle instances are created.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#returnObject(K,%20T)">returnObject</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key, + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a> obj)</code> +<div class="block">Returns an object to a keyed sub-pool.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#setConfig(org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig)">setConfig</a></strong>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.html" title="class in org.apache.commons.pool2.impl">GenericKeyedObjectPoolConfig</a> conf)</code> +<div class="block">Sets the configuration.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#setMaxIdlePerKey(int)">setMaxIdlePerKey</a></strong>(int maxIdlePerKey)</code> +<div class="block">Sets the cap on the number of "idle" instances per key in the pool.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#setMaxTotalPerKey(int)">setMaxTotalPerKey</a></strong>(int maxTotalPerKey)</code> +<div class="block">Sets the limit on the number of object instances allocated by the pool + (checked out or idle), per key.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#setMinIdlePerKey(int)">setMinIdlePerKey</a></strong>(int minIdlePerKey)</code> +<div class="block">Sets the target for the minimum number of idle objects to maintain in + each of the keyed sub-pools.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.pool2.impl.BaseGenericObjectPool"> +<!-- --> +</a> +<h3>Methods inherited from class org.apache.commons.pool2.impl.<a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html" title="class in org.apache.commons.pool2.impl">BaseGenericObjectPool</a></h3> +<code><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getBlockWhenExhausted()">getBlockWhenExhausted</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getBorrowedCount()">getBorrowedCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getCreatedCount()">getCreatedCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getCreationStackTrace()">getCreationStackTrace</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getDestroyedByBorrowValidationCount()">getDestroyedByBorrowValidationCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getDestroyedByEvictorCount()">getDestroyedByEvictorCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getDestroyedCount()">getDestroyedCount</a>, <a href="../../../../../org/apache/commons/pool2/imp l/BaseGenericObjectPool.html#getEvictionPolicyClassName()">getEvictionPolicyClassName</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getFairness()">getFairness</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getJmxName()">getJmxName</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getLifo()">getLifo</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getMaxBorrowWaitTimeMillis()">getMaxBorrowWaitTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getMaxTotal()">getMaxTotal</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getMaxWaitMillis()">getMaxWaitMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getMeanActiveTimeMillis()">getMeanActiveTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGen ericObjectPool.html#getMeanBorrowWaitTimeMillis()">getMeanBorrowWaitTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getMeanIdleTimeMillis()">getMeanIdleTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getMinEvictableIdleTimeMillis()">getMinEvictableIdleTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getNumTestsPerEvictionRun()">getNumTestsPerEvictionRun</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getReturnedCount()">getReturnedCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getSoftMinEvictableIdleTimeMillis()">getSoftMinEvictableIdleTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getSwallowedExceptionListener()">getSwallowedExceptionListener</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGen ericObjectPool.html#getTestOnBorrow()">getTestOnBorrow</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getTestOnCreate()">getTestOnCreate</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getTestOnReturn()">getTestOnReturn</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getTestWhileIdle()">getTestWhileIdle</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getTimeBetweenEvictionRunsMillis()">getTimeBetweenEvictionRunsMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#isClosed()">isClosed</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setBlockWhenExhausted(boolean)">setBlockWhenExhausted</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setEvictionPolicyClassName(java.lang.String)">setEvictionPolicyClassName</a>, <a href=".. /../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setLifo(boolean)">setLifo</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setMaxTotal(int)">setMaxTotal</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setMaxWaitMillis(long)">setMaxWaitMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setMinEvictableIdleTimeMillis(long)">setMinEvictableIdleTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setNumTestsPerEvictionRun(int)">setNumTestsPerEvictionRun</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setSoftMinEvictableIdleTimeMillis(long)">setSoftMinEvictableIdleTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setSwallowedExceptionListener(org.apache.commons.pool2.SwallowedExceptionListener)">setSwallowedExceptionListener< /a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setTestOnBorrow(boolean)">setTestOnBorrow</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setTestOnCreate(boolean)">setTestOnCreate</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setTestOnReturn(boolean)">setTestOnReturn</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setTestWhileIdle(boolean)">setTestWhileIdle</a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setTimeBetweenEvictionRunsMillis(long)">setTimeBetweenEvictionRunsMillis</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang /Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.pool2.impl.GenericKeyedObjectPoolMXBean"> +<!-- --> +</a> +<h3>Methods inherited from interface org.apache.commons.pool2.impl.<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html" title="interface in org.apache.commons.pool2.impl">GenericKeyedObjectPoolMXBean</a></h3> +<code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getBlockWhenExhausted()">getBlockWhenExhausted</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getBorrowedCount()">getBorrowedCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getCreatedCount()">getCreatedCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getCreationStackTrace()">getCreationStackTrace</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getDestroyedByBorrowValidationCount()">getDestroyedByBorrowValidationCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getDestroyedByEvictorCount()">getDestroyedByEvictorCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getDestroyedCount()">getDestroyedCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getFairness()">getFairness</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getLifo()">getLifo</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getMaxBorrowWaitTimeMillis()">getMaxBorrowWaitTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getMaxTotal()">getMaxTotal</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getMaxWaitMillis()">getMaxWaitMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getMeanActiveTimeMillis()">getMeanActiveTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getMeanBorrowWaitTimeMillis()">getMeanBorrowWaitTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObject PoolMXBean.html#getMeanIdleTimeMillis()">getMeanIdleTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getMinEvictableIdleTimeMillis()">getMinEvictableIdleTimeMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getNumTestsPerEvictionRun()">getNumTestsPerEvictionRun</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getReturnedCount()">getReturnedCount</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getTestOnBorrow()">getTestOnBorrow</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getTestOnCreate()">getTestOnCreate</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getTestOnReturn()">getTestOnReturn</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getTestWhileIdle()">get TestWhileIdle</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getTimeBetweenEvictionRunsMillis()">getTimeBetweenEvictionRunsMillis</a>, <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#isClosed()">isClosed</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor_detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="GenericKeyedObjectPool(org.apache.commons.pool2.KeyedPooledObjectFactory)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GenericKeyedObjectPool</h4> +<pre>public <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.85">GenericKeyedObjectPool</a>(<a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2">KeyedPooledObjectFactory</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>> factory)</pre> +<div class="block">Create a new <code>GenericKeyedObjectPool</code> using defaults from + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.html" title="class in org.apache.commons.pool2.impl"><code>GenericKeyedObjectPoolConfig</code></a>.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>factory</code> - the factory to be used to create entries</dd></dl> +</li> +</ul> +<a name="GenericKeyedObjectPool(org.apache.commons.pool2.KeyedPooledObjectFactory, org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig)"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>GenericKeyedObjectPool</h4> +<pre>public <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.99">GenericKeyedObjectPool</a>(<a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2">KeyedPooledObjectFactory</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>> factory, + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.html" title="class in org.apache.commons.pool2.impl">GenericKeyedObjectPoolConfig</a> config)</pre> +<div class="block">Create a new <code>GenericKeyedObjectPool</code> using a specific + configuration.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>factory</code> - the factory to be used to create entries</dd><dd><code>config</code> - The configuration to use for this pool instance. The + configuration is used by value. Subsequent changes to + the configuration object will not be reflected in the + pool.</dd></dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method_detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getMaxTotalPerKey()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getMaxTotalPerKey</h4> +<pre>public int <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.126">getMaxTotalPerKey</a>()</pre> +<div class="block">Returns the limit on the number of object instances allocated by the pool + (checked out or idle), per key. When the limit is reached, the sub-pool + is said to be exhausted. A negative value indicates no limit.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getMaxTotalPerKey()">getMaxTotalPerKey</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html" title="interface in org.apache.commons.pool2.impl">GenericKeyedObjectPoolMXBean</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>></code></dd> +<dt><span class="strong">Returns:</span></dt><dd>the limit on the number of active instances per key</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#setMaxTotalPerKey(int)"><code>setMaxTotalPerKey(int)</code></a></dd></dl> +</li> +</ul> +<a name="setMaxTotalPerKey(int)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setMaxTotalPerKey</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.139">setMaxTotalPerKey</a>(int maxTotalPerKey)</pre> +<div class="block">Sets the limit on the number of object instances allocated by the pool + (checked out or idle), per key. When the limit is reached, the sub-pool + is said to be exhausted. A negative value indicates no limit.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxTotalPerKey</code> - the limit on the number of active instances per key</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMaxTotalPerKey()"><code>getMaxTotalPerKey()</code></a></dd></dl> +</li> +</ul> +<a name="getMaxIdlePerKey()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getMaxIdlePerKey</h4> +<pre>public int <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.160">getMaxIdlePerKey</a>()</pre> +<div class="block">Returns the cap on the number of "idle" instances per key in the pool. + If maxIdlePerKey is set too low on heavily loaded systems it is possible + you will see objects being destroyed and almost immediately new objects + being created. This is a result of the active threads momentarily + returning objects faster than they are requesting them them, causing the + number of idle objects to rise above maxIdlePerKey. The best value for + maxIdlePerKey for heavily loaded system will vary but the default is a + good starting point.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getMaxIdlePerKey()">getMaxIdlePerKey</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html" title="interface in org.apache.commons.pool2.impl">GenericKeyedObjectPoolMXBean</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>></code></dd> +<dt><span class="strong">Returns:</span></dt><dd>the maximum number of "idle" instances that can be held in a + given keyed sub-pool or a negative value if there is no limit</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#setMaxIdlePerKey(int)"><code>setMaxIdlePerKey(int)</code></a></dd></dl> +</li> +</ul> +<a name="setMaxIdlePerKey(int)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setMaxIdlePerKey</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.180">setMaxIdlePerKey</a>(int maxIdlePerKey)</pre> +<div class="block">Sets the cap on the number of "idle" instances per key in the pool. + If maxIdlePerKey is set too low on heavily loaded systems it is possible + you will see objects being destroyed and almost immediately new objects + being created. This is a result of the active threads momentarily + returning objects faster than they are requesting them them, causing the + number of idle objects to rise above maxIdlePerKey. The best value for + maxIdlePerKey for heavily loaded system will vary but the default is a + good starting point.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxIdlePerKey</code> - the maximum number of "idle" instances that can be + held in a given keyed sub-pool. Use a negative value + for no limit</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMaxIdlePerKey()"><code>getMaxIdlePerKey()</code></a></dd></dl> +</li> +</ul> +<a name="setMinIdlePerKey(int)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setMinIdlePerKey</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.202">setMinIdlePerKey</a>(int minIdlePerKey)</pre> +<div class="block">Sets the target for the minimum number of idle objects to maintain in + each of the keyed sub-pools. This setting only has an effect if it is + positive and <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getTimeBetweenEvictionRunsMillis()"><code>BaseGenericObjectPool.getTimeBetweenEvictionRunsMillis()</code></a> is greater than + zero. If this is the case, an attempt is made to ensure that each + sub-pool has the required minimum number of instances during idle object + eviction runs. + <p> + If the configured value of minIdlePerKey is greater than the configured + value for maxIdlePerKey then the value of maxIdlePerKey will be used + instead.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>minIdlePerKey</code> - The minimum size of the each keyed pool</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMinIdlePerKey()"><code>getMinIdlePerKey()</code></a>, +<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMaxIdlePerKey()"><code>getMaxIdlePerKey()</code></a>, +<a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setTimeBetweenEvictionRunsMillis(long)"><code>BaseGenericObjectPool.setTimeBetweenEvictionRunsMillis(long)</code></a></dd></dl> +</li> +</ul> +<a name="getMinIdlePerKey()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getMinIdlePerKey</h4> +<pre>public int <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.223">getMinIdlePerKey</a>()</pre> +<div class="block">Returns the target for the minimum number of idle objects to maintain in + each of the keyed sub-pools. This setting only has an effect if it is + positive and <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getTimeBetweenEvictionRunsMillis()"><code>BaseGenericObjectPool.getTimeBetweenEvictionRunsMillis()</code></a> is greater than + zero. If this is the case, an attempt is made to ensure that each + sub-pool has the required minimum number of instances during idle object + eviction runs. + <p> + If the configured value of minIdlePerKey is greater than the configured + value for maxIdlePerKey then the value of maxIdlePerKey will be used + instead.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getMinIdlePerKey()">getMinIdlePerKey</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html" title="interface in org.apache.commons.pool2.impl">GenericKeyedObjectPoolMXBean</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>></code></dd> +<dt><span class="strong">Returns:</span></dt><dd>minimum size of the each keyed pool</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#setTimeBetweenEvictionRunsMillis(long)"><code>BaseGenericObjectPool.setTimeBetweenEvictionRunsMillis(long)</code></a></dd></dl> +</li> +</ul> +<a name="setConfig(org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setConfig</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.239">setConfig</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.html" title="class in org.apache.commons.pool2.impl">GenericKeyedObjectPoolConfig</a> conf)</pre> +<div class="block">Sets the configuration.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>conf</code> - the new configuration to use. This is used by value.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.html" title="class in org.apache.commons.pool2.impl"><code>GenericKeyedObjectPoolConfig</code></a></dd></dl> +</li> +</ul> +<a name="getFactory()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getFactory</h4> +<pre>public <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2">KeyedPooledObjectFactory</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>> <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.266">getFactory</a>()</pre> +<div class="block">Obtain a reference to the factory used to create, destroy and validate + the objects used by this pool.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>the factory</dd></dl> +</li> +</ul> +<a name="borrowObject(java.lang.Object)"> +<!-- --> +</a><a name="borrowObject(K)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>borrowObject</h4> +<pre>public <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a> <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.277">borrowObject</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key) + throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre> +<div class="block">Equivalent to <code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#borrowObject(K,%20long)"><code>borrowObject</code></a>(key, + <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getMaxWaitMillis()"><code>BaseGenericObjectPool.getMaxWaitMillis()</code></a>)</code>. + <p> + Obtains an instance from this pool for the specified <code>key</code>. + <p> + Instances returned from this method will have been either newly created + with <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject(K)"><code>makeObject</code></a> or will be + a previously idle object and have been activated with + <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#activateObject(K,%20org.apache.commons.pool2.PooledObject)"><code>activateObject</code></a> and then + (optionally) validated with + <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#validateObject(K,%20org.apache.commons.pool2.PooledObject)"><code>validateObject</code></a>. + <p> + By contract, clients <strong>must</strong> return the borrowed object + using <a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#returnObject(K,%20V)"><code>returnObject</code></a>, + <a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#invalidateObject(K,%20V)"><code>invalidateObject</code></a>, or a related method as + defined in an implementation or sub-interface, using a <code>key</code> + that is <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang"><code>equivalent</code></a> to the one used to borrow the + instance in the first place. + <p> + The behaviour of this method when the pool has been exhausted is not + strictly specified (although it may be specified by implementations).</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject(K)">borrowObject</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - the key used to obtain the object</dd> +<dt><span class="strong">Returns:</span></dt><dd>an instance from this pool.</dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - after <a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#close()"><code>close</code></a> has been called on this pool</dd> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - when <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject(K)"><code>makeObject</code></a> throws an exception</dd> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/NoSuchElementException.html?is-external=true" title="class or interface in java.util">NoSuchElementException</a></code> - when the pool is exhausted and cannot or will not return + another instance</dd></dl> +</li> +</ul> +<a name="borrowObject(java.lang.Object,long)"> +<!-- --> +</a><a name="borrowObject(K, long)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>borrowObject</h4> +<pre>public <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a> <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.337">borrowObject</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key, + long borrowMaxWaitMillis) + throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre> +<div class="block">Borrows an object from the sub-pool associated with the given key using + the specified waiting time which only applies if + <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getBlockWhenExhausted()"><code>BaseGenericObjectPool.getBlockWhenExhausted()</code></a> is true. + <p> + If there is one or more idle instances available in the sub-pool + associated with the given key, then an idle instance will be selected + based on the value of <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getLifo()"><code>BaseGenericObjectPool.getLifo()</code></a>, activated and returned. If + activation fails, or <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getTestOnBorrow()"><code>testOnBorrow</code></a> is set to + <code>true</code> and validation fails, the instance is destroyed and the + next available instance is examined. This continues until either a valid + instance is returned or there are no more idle instances available. + <p> + If there are no idle instances available in the sub-pool associated with + the given key, behavior depends on the <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMaxTotalPerKey()"><code>maxTotalPerKey</code></a>, <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getMaxTotal()"><code>maxTotal</code></a>, and (if applicable) + <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getBlockWhenExhausted()"><code>BaseGenericObjectPool.getBlockWhenExhausted()</code></a> and the value passed in to the + <code>borrowMaxWaitMillis</code> parameter. If the number of instances checked + out from the sub-pool under the given key is less than + <code>maxTotalPerKey</code> and the total number of instances in + circulation (under all keys) is less than <code>maxTotal</code>, a new + instance is created, activated and (if applicable) validated and returned + to the caller. If validation fails, a <code>NoSuchElementException</code> + will be thrown. + <p> + If the associated sub-pool is exhausted (no available idle instances and + no capacity to create new ones), this method will either block + (<a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getBlockWhenExhausted()"><code>BaseGenericObjectPool.getBlockWhenExhausted()</code></a> is true) or throw a + <code>NoSuchElementException</code> + (<a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getBlockWhenExhausted()"><code>BaseGenericObjectPool.getBlockWhenExhausted()</code></a> is false). + The length of time that this method will block when + <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getBlockWhenExhausted()"><code>BaseGenericObjectPool.getBlockWhenExhausted()</code></a> is true is determined by the value + passed in to the <code>borrowMaxWait</code> parameter. + <p> + When <code>maxTotal</code> is set to a positive value and this method is + invoked when at the limit with no idle instances available under the requested + key, an attempt is made to create room by clearing the oldest 15% of the + elements from the keyed sub-pools. + <p> + When the pool is exhausted, multiple calling threads may be + simultaneously blocked waiting for instances to become available. A + "fairness" algorithm has been implemented to ensure that threads receive + available instances in request arrival order.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - pool key</dd><dd><code>borrowMaxWaitMillis</code> - The time to wait in milliseconds for an object + to become available</dd> +<dt><span class="strong">Returns:</span></dt><dd>object instance from the keyed pool</dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/NoSuchElementException.html?is-external=true" title="class or interface in java.util">NoSuchElementException</a></code> - if a keyed object instance cannot be + returned because the pool is exhausted.</dd> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if a keyed object instance cannot be returned due to an + error</dd></dl> +</li> +</ul> +<a name="returnObject(java.lang.Object,java.lang.Object)"> +<!-- --> +</a><a name="returnObject(K, T)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>returnObject</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.469">returnObject</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key, + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a> obj)</pre> +<div class="block">Returns an object to a keyed sub-pool. + <p> + If <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMaxIdlePerKey()"><code>maxIdle</code></a> is set to a positive value and the + number of idle instances under the given key has reached this value, the + returning instance is destroyed. + <p> + If <a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getTestOnReturn()"><code>testOnReturn</code></a> == true, the returning + instance is validated before being returned to the idle instance sub-pool + under the given key. In this case, if validation fails, the instance is + destroyed. + <p> + Exceptions encountered destroying objects for any reason are swallowed + but notified via a <a href="../../../../../org/apache/commons/pool2/SwallowedExceptionListener.html" title="interface in org.apache.commons.pool2"><code>SwallowedExceptionListener</code></a>.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#returnObject(K,%20V)">returnObject</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - pool key</dd><dd><code>obj</code> - instance to return to the keyed pool</dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if an object is returned to the pool that + was not borrowed from it or if an object is + returned to the pool multiple times</dd></dl> +</li> +</ul> +<a name="invalidateObject(java.lang.Object,java.lang.Object)"> +<!-- --> +</a><a name="invalidateObject(K, T)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>invalidateObject</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.573">invalidateObject</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key, + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a> obj) + throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre> +<div class="block">Invalidates an object from the pool. + <p> + By contract, <code>obj</code> <strong>must</strong> have been obtained + using <a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject(K)"><code>borrowObject</code></a> or a related method as defined + in an implementation or sub-interface using a <code>key</code> that is + equivalent to the one used to borrow the <code>Object</code> in the first + place. + <p> + This method should be used when an object that has been borrowed is + determined (due to an exception or other problem) to be invalid. + <p> + Activation of this method decrements the active count associated with + the given keyed pool and attempts to destroy <code>obj.</code></div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#invalidateObject(K,%20V)">invalidateObject</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - pool key</dd><dd><code>obj</code> - instance to invalidate</dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if an exception occurs destroying the + object</dd> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if obj does not belong to the pool + under the given key</dd></dl> +</li> +</ul> +<a name="clear()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clear</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.612">clear</a>()</pre> +<div class="block">Clears any objects sitting idle in the pool by removing them from the + idle instance sub-pools and then invoking the configured + PoolableObjectFactory's + <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#destroyObject(K,%20org.apache.commons.pool2.PooledObject)"><code>KeyedPooledObjectFactory.destroyObject(Object, PooledObject)</code></a> + method on each idle instance. + <p> + Implementation notes: + <ul> + <li>This method does not destroy or effect in any way instances that are + checked out when it is invoked.</li> + <li>Invoking this method does not prevent objects being returned to the + idle instance pool, even during its execution. Additional instances may + be returned while removed items are being destroyed.</li> + <li>Exceptions encountered destroying idle instances are swallowed + but notified via a <a href="../../../../../org/apache/commons/pool2/SwallowedExceptionListener.html" title="interface in org.apache.commons.pool2"><code>SwallowedExceptionListener</code></a>.</li> + </ul></div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#clear()">clear</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +</dl> +</li> +</ul> +<a name="clear(java.lang.Object)"> +<!-- --> +</a><a name="clear(K)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clear</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.630">clear</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key)</pre> +<div class="block">Clears the specified sub-pool, removing all pooled instances + corresponding to the given <code>key</code>. Exceptions encountered + destroying idle instances are swallowed but notified via a + <a href="../../../../../org/apache/commons/pool2/SwallowedExceptionListener.html" title="interface in org.apache.commons.pool2"><code>SwallowedExceptionListener</code></a>.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#clear(K)">clear</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - the key to clear</dd></dl> +</li> +</ul> +<a name="getNumActive()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNumActive</h4> +<pre>public int <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.655">getNumActive</a>()</pre> +<div class="block"><strong>Description copied from interface: <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumActive()">KeyedObjectPool</a></code></strong></div> +<div class="block">Returns the total number of instances current borrowed from this pool but + not yet returned. Returns a negative value if this information is not + available.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getNumActive()">getNumActive</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html" title="interface in org.apache.commons.pool2.impl">GenericKeyedObjectPoolMXBean</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>></code></dd> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumActive()">getNumActive</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Returns:</span></dt><dd>the total number of instances current borrowed from this pool but + not yet returned.</dd></dl> +</li> +</ul> +<a name="getNumIdle()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNumIdle</h4> +<pre>public int <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.661">getNumIdle</a>()</pre> +<div class="block"><strong>Description copied from class: <code><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getNumIdle()">BaseGenericObjectPool</a></code></strong></div> +<div class="block">The number of instances currently idle in this pool.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getNumIdle()">getNumIdle</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html" title="interface in org.apache.commons.pool2.impl">GenericKeyedObjectPoolMXBean</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>></code></dd> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumIdle()">getNumIdle</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#getNumIdle()">getNumIdle</a></code> in class <code><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html" title="class in org.apache.commons.pool2.impl">BaseGenericObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Returns:</span></dt><dd>count of instances available for checkout from the pool</dd></dl> +</li> +</ul> +<a name="getNumActive(java.lang.Object)"> +<!-- --> +</a><a name="getNumActive(K)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNumActive</h4> +<pre>public int <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.674">getNumActive</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key)</pre> +<div class="block"><strong>Description copied from interface: <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumActive(K)">KeyedObjectPool</a></code></strong></div> +<div class="block">Returns the number of instances currently borrowed from but not yet + returned to the pool corresponding to the given <code>key</code>. + Returns a negative value if this information is not available.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumActive(K)">getNumActive</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - the key to query</dd> +<dt><span class="strong">Returns:</span></dt><dd>the number of instances currently borrowed from but not yet + returned to the pool corresponding to the given <code>key</code>. +=</dd></dl> +</li> +</ul> +<a name="getNumIdle(java.lang.Object)"> +<!-- --> +</a><a name="getNumIdle(K)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNumIdle</h4> +<pre>public int <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.686">getNumIdle</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key)</pre> +<div class="block"><strong>Description copied from interface: <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumIdle(K)">KeyedObjectPool</a></code></strong></div> +<div class="block">Returns the number of instances corresponding to the given + <code>key</code> currently idle in this pool. Returns a negative value if + this information is not available.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumIdle(K)">getNumIdle</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - the key to query</dd> +<dt><span class="strong">Returns:</span></dt><dd>the number of instances corresponding to the given + <code>key</code> currently idle in this pool.</dd></dl> +</li> +</ul> +<a name="close()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>close</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.702">close</a>()</pre> +<div class="block">Closes the keyed object pool. Once the pool is closed, + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#borrowObject(K)"><code>borrowObject(Object)</code></a> will fail with IllegalStateException, but + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#returnObject(K,%20T)"><code>returnObject(Object, Object)</code></a> and + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#invalidateObject(K,%20T)"><code>invalidateObject(Object, Object)</code></a> will continue to work, with + returned objects destroyed on return. + <p> + Destroys idle instances in the pool by invoking <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#clear()"><code>clear()</code></a>.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#close()">close</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#close()">close</a></code> in class <code><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html" title="class in org.apache.commons.pool2.impl">BaseGenericObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +</dl> +</li> +</ul> +<a name="clearOldest()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearOldest</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.738">clearOldest</a>()</pre> +<div class="block">Clears oldest 15% of objects in pool. The method sorts the objects into + a TreeMap and then iterates the first 15% for removal.</div> +</li> +</ul> +<a name="evict()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>evict</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.864">evict</a>() + throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre> +<div class="block"><p>Perform <code>numTests</code> idle object eviction tests, evicting + examined objects that meet the criteria for eviction. If + <code>testWhileIdle</code> is true, examined objects are validated + when visited (and removed if invalid); otherwise only objects that + have been idle for more than <code>minEvicableIdleTimeMillis</code> + are removed.</p> + <p> + Successive activations of this method examine objects in keyed sub-pools + in sequence, cycling through the keys and examining objects in + oldest-to-youngest order within the keyed sub-pools.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html#evict()">evict</a></code> in class <code><a href="../../../../../org/apache/commons/pool2/impl/BaseGenericObjectPool.html" title="class in org.apache.commons.pool2.impl">BaseGenericObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - when there is a problem evicting idle objects.</dd></dl> +</li> +</ul> +<a name="addObject(java.lang.Object)"> +<!-- --> +</a><a name="addObject(K)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addObject</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.1212">addObject</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key) + throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre> +<div class="block">Create an object using the <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject(K)"><code>factory</code></a>, passivate it, and then place it in the idle object pool. + <code>addObject</code> is useful for "pre-loading" a pool with idle + objects.</div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html#addObject(K)">addObject</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2">KeyedObjectPool</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>,<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">T</a>></code></dd> +<dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - the key a new instance should be added to</dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - when <a href="../../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject(K)"><code>KeyedPooledObjectFactory.makeObject(K)</code></a> + fails.</dd></dl> +</li> +</ul> +<a name="preparePool(java.lang.Object)"> +<!-- --> +</a><a name="preparePool(K)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>preparePool</h4> +<pre>public void <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.1254">preparePool</a>(<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a> key) + throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre> +<div class="block">Registers a key for pool control and ensures that + <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getMinIdlePerKey()"><code>getMinIdlePerKey()</code></a> idle instances are created.</div> +<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - - The key to register for pool control.</dd> +<dt><span class="strong">Throws:</span></dt> +<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If the associated factory fails to create the necessary + number of idle instances</dd></dl> +</li> +</ul> +<a name="getNumActivePerKey()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNumActivePerKey</h4> +<pre>public <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> <a href="../../../../../src-html/org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#line.1320">getNumActivePerKey</a>()</pre> +<div class="block"><strong>Description copied from interface: <code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getNumActivePerKey()">GenericKeyedObjectPoolMXBean</a></code></strong></div> +<div class="block">See <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumActivePerKey()"><code>getNumActivePerKey()</code></a></div> +<dl> +<dt><strong>Specified by:</strong></dt> +<dd><code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html#getNumActivePerKey()">getNumActivePerKey</a></code> in interface <code><a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.html" title="interface in org.apache.commons.pool2.impl">GenericKeyedObjectPoolMXBean</a><<a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="type parameter in GenericKeyedObjectPool">K</a>></code></dd> +<dt><span class="strong">Returns:</span></dt><dd>See <a href="../../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html#getNumActivePerKey()"><code>getNumActivePerKey()</code></a></dd></dl> +</li> +</ul> +<a name="getNumWaiters()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList">
[... 121 lines stripped ...]