Class AbstractNIOConnPool<T,​C,​E extends PoolEntry<T,​C>>

    • Field Detail

      • leased

        private final java.util.Set<E extends PoolEntry<T,​C>> leased
      • available

        private final java.util.LinkedList<E extends PoolEntry<T,​C>> available
      • completedRequests

        private final java.util.concurrent.ConcurrentLinkedQueue<LeaseRequest<T,​C,​E extends PoolEntry<T,​C>>> completedRequests
      • maxPerRoute

        private final java.util.Map<T,​java.lang.Integer> maxPerRoute
      • lock

        private final java.util.concurrent.locks.Lock lock
      • isShutDown

        private final java.util.concurrent.atomic.AtomicBoolean isShutDown
      • defaultMaxPerRoute

        private volatile int defaultMaxPerRoute
      • maxTotal

        private volatile int maxTotal
    • Method Detail

      • resolveRemoteAddress

        @Deprecated
        protected java.net.SocketAddress resolveRemoteAddress​(T route)
        Deprecated.
      • resolveLocalAddress

        @Deprecated
        protected java.net.SocketAddress resolveLocalAddress​(T route)
        Deprecated.
      • createEntry

        protected abstract E createEntry​(T route,
                                         C conn)
      • onLease

        protected void onLease​(E entry)
        Since:
        4.3
      • onRelease

        protected void onRelease​(E entry)
        Since:
        4.3
      • onReuse

        protected void onReuse​(E entry)
        Since:
        4.4
      • isShutdown

        public boolean isShutdown()
      • shutdown

        public void shutdown​(long waitMs)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • lease

        public java.util.concurrent.Future<E> lease​(T route,
                                                    java.lang.Object state,
                                                    long connectTimeout,
                                                    java.util.concurrent.TimeUnit timeUnit,
                                                    FutureCallback<E> callback)
      • lease

        public java.util.concurrent.Future<E> lease​(T route,
                                                    java.lang.Object state,
                                                    long connectTimeout,
                                                    long leaseTimeout,
                                                    java.util.concurrent.TimeUnit timeUnit,
                                                    FutureCallback<E> callback)
        Since:
        4.3
      • lease

        public java.util.concurrent.Future<E> lease​(T route,
                                                    java.lang.Object state,
                                                    FutureCallback<E> callback)
        Description copied from interface: ConnPool
        Attempts to lease a connection for the given route and with the given state from the pool.
        Specified by:
        lease in interface ConnPool<T,​C>
        Parameters:
        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.
        Returns:
        future for a leased pool entry.
      • lease

        public java.util.concurrent.Future<E> lease​(T route,
                                                    java.lang.Object state)
      • release

        public void release​(E entry,
                            boolean reusable)
        Description copied from interface: ConnPool
        Releases the pool entry back to the pool.
        Specified by:
        release in interface ConnPool<T,​C>
        Parameters:
        entry - pool entry leased from the pool
        reusable - flag indicating whether or not the released connection is in a consistent state and is safe for further use.
      • processPendingRequests

        private void processPendingRequests()
      • processNextPendingRequest

        private void processNextPendingRequest()
      • processPendingRequest

        private boolean processPendingRequest​(LeaseRequest<T,​C,​E> request)
      • fireCallbacks

        private void fireCallbacks()
      • validatePendingRequests

        public void validatePendingRequests()
      • requestCompleted

        protected void requestCompleted​(SessionRequest request)
      • requestCancelled

        protected void requestCancelled​(SessionRequest request)
      • requestFailed

        protected void requestFailed​(SessionRequest request)
      • requestTimeout

        protected void requestTimeout​(SessionRequest request)
      • getMax

        private int getMax​(T route)
      • getRoutes

        public java.util.Set<T> getRoutes()
        Returns snapshot of all knows routes
        Since:
        4.4
      • enumAvailable

        protected void enumAvailable​(PoolEntryCallback<T,​C> callback)
        Enumerates all available connections.
        Since:
        4.3
      • enumLeased

        protected void enumLeased​(PoolEntryCallback<T,​C> callback)
        Enumerates all leased connections.
        Since:
        4.3
      • purgePoolMap

        private void purgePoolMap()
      • closeIdle

        public void closeIdle​(long idletime,
                              java.util.concurrent.TimeUnit timeUnit)
      • closeExpired

        public void closeExpired()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object