@Override
  public Pool create(String name) throws CacheException {
    InternalDistributedSystem distributedSystem = InternalDistributedSystem.getAnyInstance();
    InternalCache cache = getInternalCache();
    ThreadsMonitoring threadMonitoring = null;
    if (cache != null) {
      threadMonitoring = cache.getDistributionManager().getThreadMonitoring();
      TypeRegistry registry = cache.getPdxRegistry();
      if (registry != null && !attributes.isGateway()) {
        registry.creatingPool();
      }
    }
    return PoolImpl.create(pm, name, attributes, locatorAddresses, distributedSystem,
        cache, threadMonitoring);
  }
Create a new Pool for connecting a client to a set of GemFire Cache Servers. using this
factory's settings for attributes.

@param name the name of the connection pool, used when connecting regions to it
@throws IllegalStateException if the connection pool name already exists
@throws IllegalStateException if this factory does not have any locators or servers
@return the newly created connection pool.
@since GemFire 5.7
geode-core/src/main/java/org/apache/geode/internal/cache/PoolFactoryImpl.java