private void startConfigurationPersistenceService() throws IOException {
    installRequestHandlers();

    if (!distributionConfig.getEnableClusterConfiguration()) {
      logger.info("Cluster configuration service is disabled");
      return;
    }

    if (!distributionConfig.getJmxManager()) {
      throw new IllegalStateException(
          "Cannot start cluster configuration without jmx-manager=true");
    }

    if (isSharedConfigurationStarted) {
      logger.info("Cluster configuration service is already started.");
      return;
    }

    if (!isDedicatedLocator()) {
      logger.info(
          "Cluster configuration service not enabled as it is only supported in dedicated locators");
      return;
    }


    if (configurationPersistenceService == null) {
      // configurationPersistenceService will already be created in case of auto-reconnect
      configurationPersistenceService =
          new InternalConfigurationPersistenceService(internalCache, workingDirectory,
              JAXBService.create());
    }
    configurationPersistenceService
        .initSharedConfiguration(loadFromSharedConfigDir());
    logger.info(
        "Cluster configuration service start up completed successfully and is now running ....");
    isSharedConfigurationStarted = true;
  }
Returns collection of locator strings representing every locator instance hosted by this
member.

@see #getLocator()
geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java