class ServerSessionPoolCenter {

    public synchronized ServerSessionPool getSickServerSessionPool(DBVendor dbVendor) {
        DBConnectionInfo dbInfo = getSickDBInfo(dbVendor);
        PoolId id = new PoolId(dbInfo, true);
        ServerSessionPool pool = entities.get(id);
        if (Objects.isNull(pool)) {
            pool = new ServerSessionPool(dbInfo, true, sickServerSessionFactory);
            entities.put(id, pool);
        } else {
            pool.retain();
        }
        return pool;
    }

}