@FFDCIgnore(value = { InterruptedException.class })
    public void close() {
        // remove all the clients from the deque, closing them as we go
        while (numClientsClosed.get() < numClients) {
            try {
                Client client = clients.takeFirst();
                try {
                    client.close();
                } catch (Exception e) {
                    //Ignore this
                }
                numClientsClosed.incrementAndGet();

                if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
                    Tr.event(tc, "pool closed   - " + numClientsClosed + " of " + numClients + " clients closed");
            } catch (InterruptedException e) {
                if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
                    Tr.event(tc, "InterruptedException during close - will retry");
            }
        }
    }
@ FFDCIgnore ( value = { InterruptedException . class } ) public void close ( ) { while ( numClientsClosed . get ( ) < numClients ) { try { Client client = clients . takeFirst ( ) ; try { client . close ( ) ; } catch ( Exception e ) { } numClientsClosed . incrementAndGet ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEventEnabled ( ) ) Tr . event ( tc , "pool closed   - " + numClientsClosed + " of " + numClients + " clients closed" ) ; } catch ( InterruptedException e ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEventEnabled ( ) ) Tr . event ( tc , "InterruptedException during close - will retry" ) ; } } }
/*
Closes all clients. Waits for checked out clients to be checked in, then closes them too.