First, make sure you are running the latest version (currently 2.3.6) of the pool. You don't say what database you are using, it is PostgreSQL? If so, as commented at the end of that bug, one of the things you might try is setting the loginTimeout property on the PostgreSQL datasource.
You can invoke the
softEvictConnections() through the MBean, either interactively through jconsole or Java Mission Control, or
programatically. The housekeeping thread calls
fillPool() every 30 seconds to "top off" the pool if needed, so there is no need to invoke it explicitly.
-Brett