code: public synchronized void shutdown()
     {
        if (pool.getConfiguration().isBackgroundValidation() &&
            pool.getConfiguration().getBackgroundValidationMillis() > 0)
        {
           ConnectionValidator.getInstance().unregisterPool(this);
        }
  
        if (pool.getConfiguration().getIdleTimeoutMinutes() > 0)
        {
           IdleConnectionRemover.getInstance().unregisterPool(this);
        }
  
        for (ConnectionListener cl : listeners)
        {
           if (cl.getState() == IN_USE)
           {
              // TODO
           }
           else if (cl.getState() == DESTROY)
           {
              // TODO
           }
  
           try
           {
              if (Tracer.isEnabled())
                 Tracer.clearConnectionListener(pool.getConfiguration().getId(), this, cl);
  
              pool.destroyConnectionListener(cl);
           }
           catch (ResourceException re)
           {
              // TODO
              cl.setState(ZOMBIE);
           }
        }
        listeners.clear();
     }
docs: {@inheritDoc}