implementation of lifecycle-aware connection pool with re-instantiation