T
- routeC
- connection objectE
- pool entry@Contract(threading=SAFE_CONDITIONAL) public abstract class AbstractNIOConnPool<T,C,E extends PoolEntry<T,C>> extends Object implements ConnPool<T,E>, ConnPoolControl<T>
Modifier and Type | Class and Description |
---|---|
(package private) class |
AbstractNIOConnPool.InternalSessionRequestCallback |
Modifier and Type | Field and Description |
---|---|
private SocketAddressResolver<T> |
addressResolver |
private LinkedList<E> |
available |
private ConcurrentLinkedQueue<LeaseRequest<T,C,E>> |
completedRequests |
private NIOConnFactory<T,C> |
connFactory |
private int |
defaultMaxPerRoute |
private ConnectingIOReactor |
ioreactor |
private AtomicBoolean |
isShutDown |
private Set<E> |
leased |
private LinkedList<LeaseRequest<T,C,E>> |
leasingRequests |
private Lock |
lock |
private Map<T,Integer> |
maxPerRoute |
private int |
maxTotal |
private Set<SessionRequest> |
pending |
private Map<T,RouteSpecificPool<T,C,E>> |
routeToPool |
private SessionRequestCallback |
sessionRequestCallback |
Constructor and Description |
---|
AbstractNIOConnPool(ConnectingIOReactor ioreactor,
NIOConnFactory<T,C> connFactory,
int defaultMaxPerRoute,
int maxTotal)
|
AbstractNIOConnPool(ConnectingIOReactor ioreactor,
NIOConnFactory<T,C> connFactory,
SocketAddressResolver<T> addressResolver,
int defaultMaxPerRoute,
int maxTotal) |
Modifier and Type | Method and Description |
---|---|
void |
closeExpired() |
void |
closeIdle(long idletime,
TimeUnit tunit) |
protected abstract E |
createEntry(T route,
C conn) |
protected void |
enumAvailable(PoolEntryCallback<T,C> callback)
Enumerates all available connections.
|
protected void |
enumEntries(Iterator<E> it,
PoolEntryCallback<T,C> callback)
Deprecated.
(4.3.2)
|
protected void |
enumLeased(PoolEntryCallback<T,C> callback)
Enumerates all leased connections.
|
private void |
fireCallbacks() |
int |
getDefaultMaxPerRoute() |
private int |
getMax(T route) |
int |
getMaxPerRoute(T route) |
int |
getMaxTotal() |
private RouteSpecificPool<T,C,E> |
getPool(T route) |
Set<T> |
getRoutes()
Returns snapshot of all knows routes
|
PoolStats |
getStats(T route) |
PoolStats |
getTotalStats() |
boolean |
isShutdown() |
Future<E> |
lease(T route,
Object state) |
Future<E> |
lease(T route,
Object state,
FutureCallback<E> callback)
Attempts to lease a connection for the given route and with the given
state from the pool.
|
Future<E> |
lease(T route,
Object state,
long connectTimeout,
long leaseTimeout,
TimeUnit tunit,
FutureCallback<E> callback) |
Future<E> |
lease(T route,
Object state,
long connectTimeout,
TimeUnit tunit,
FutureCallback<E> callback) |
protected void |
onLease(E entry) |
protected void |
onRelease(E entry) |
protected void |
onReuse(E entry) |
private void |
processNextPendingRequest() |
private boolean |
processPendingRequest(LeaseRequest<T,C,E> request) |
private void |
processPendingRequests() |
private void |
purgePoolMap() |
void |
release(E entry,
boolean reusable)
Releases the pool entry back to the pool.
|
protected void |
requestCancelled(SessionRequest request) |
protected void |
requestCompleted(SessionRequest request) |
protected void |
requestFailed(SessionRequest request) |
protected void |
requestTimeout(SessionRequest request) |
protected SocketAddress |
resolveLocalAddress(T route)
Deprecated.
(4.3) use
SocketAddressResolver |
protected SocketAddress |
resolveRemoteAddress(T route)
Deprecated.
(4.3) use
SocketAddressResolver |
void |
setDefaultMaxPerRoute(int max) |
void |
setMaxPerRoute(T route,
int max) |
void |
setMaxTotal(int max) |
void |
shutdown(long waitMs) |
String |
toString() |
void |
validatePendingRequests() |
private final ConnectingIOReactor ioreactor
private final NIOConnFactory<T,C> connFactory
private final SocketAddressResolver<T> addressResolver
private final SessionRequestCallback sessionRequestCallback
private final Map<T,RouteSpecificPool<T,C,E extends PoolEntry<T,C>>> routeToPool
private final LinkedList<LeaseRequest<T,C,E extends PoolEntry<T,C>>> leasingRequests
private final Set<SessionRequest> pending
private final ConcurrentLinkedQueue<LeaseRequest<T,C,E extends PoolEntry<T,C>>> completedRequests
private final Map<T,Integer> maxPerRoute
private final AtomicBoolean isShutDown
private volatile int defaultMaxPerRoute
private volatile int maxTotal
@Deprecated public AbstractNIOConnPool(ConnectingIOReactor ioreactor, NIOConnFactory<T,C> connFactory, int defaultMaxPerRoute, int maxTotal)
public AbstractNIOConnPool(ConnectingIOReactor ioreactor, NIOConnFactory<T,C> connFactory, SocketAddressResolver<T> addressResolver, int defaultMaxPerRoute, int maxTotal)
@Deprecated protected SocketAddress resolveRemoteAddress(T route)
SocketAddressResolver
@Deprecated protected SocketAddress resolveLocalAddress(T route)
SocketAddressResolver
protected abstract E createEntry(T route, C conn)
public boolean isShutdown()
public void shutdown(long waitMs) throws IOException
IOException
public Future<E> lease(T route, Object state, long connectTimeout, TimeUnit tunit, FutureCallback<E> callback)
public Future<E> lease(T route, Object state, long connectTimeout, long leaseTimeout, TimeUnit tunit, FutureCallback<E> callback)
public Future<E> lease(T route, Object state, FutureCallback<E> callback)
ConnPool
lease
in interface ConnPool<T,E extends PoolEntry<T,C>>
route
- route of the connection.state
- arbitrary object that represents a particular state
(usually a security principal or a unique token identifying
the user whose credentials have been used while establishing the connection).
May be null
.callback
- operation completion callback.public void release(E entry, boolean reusable)
ConnPool
private void processPendingRequests()
private void processNextPendingRequest()
private boolean processPendingRequest(LeaseRequest<T,C,E> request)
private void fireCallbacks()
public void validatePendingRequests()
protected void requestCompleted(SessionRequest request)
protected void requestCancelled(SessionRequest request)
protected void requestFailed(SessionRequest request)
protected void requestTimeout(SessionRequest request)
public void setMaxTotal(int max)
setMaxTotal
in interface ConnPoolControl<T>
public int getMaxTotal()
getMaxTotal
in interface ConnPoolControl<T>
public void setDefaultMaxPerRoute(int max)
setDefaultMaxPerRoute
in interface ConnPoolControl<T>
public int getDefaultMaxPerRoute()
getDefaultMaxPerRoute
in interface ConnPoolControl<T>
public void setMaxPerRoute(T route, int max)
setMaxPerRoute
in interface ConnPoolControl<T>
public int getMaxPerRoute(T route)
getMaxPerRoute
in interface ConnPoolControl<T>
public PoolStats getTotalStats()
getTotalStats
in interface ConnPoolControl<T>
protected void enumAvailable(PoolEntryCallback<T,C> callback)
protected void enumLeased(PoolEntryCallback<T,C> callback)
@Deprecated protected void enumEntries(Iterator<E> it, PoolEntryCallback<T,C> callback)
private void purgePoolMap()
public void closeExpired()
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses