class ServerSessionPoolCenter {

    public synchronized ServerSessionPool getServerSessionPool(DBConnectionInfo info,
        boolean isAutoCommit) {
        isAutoCommit = forceAutoCommit(info) ? true : isAutoCommit;
        PoolId id = new PoolId(info, isAutoCommit);
        ServerSessionPool pool = entities.get(id);
        if (Objects.isNull(pool)) {
            pool = new ServerSessionPool(info, isAutoCommit, serverSessionFactory);
            entities.put(id, pool);
        } else {
            pool.retain();
        }
        return pool;
    }

}