@Override
  public void startManager() {
    try {
      lifecycleLock.lock();
      try {
        if (starting || running) {
          return;
        }
        if (logger.isDebugEnabled()) {
          logger.debug("Starting the Federating Manager.... ");
        }
        starting = true;
        executorService.set(executorServiceSupplier.get());
        running = true;
      } finally {
        lifecycleLock.unlock();
      }

      startManagingActivity();

      lifecycleLock.lock();
      try {
        for (Runnable task : pendingTasks) {
          executeTask(task);
        }
      } finally {
        pendingTasks.clear();
        starting = false;
        lifecycleLock.unlock();
      }

      messenger.broadcastManagerInfo();

    } catch (Exception e) {
      cleanupFailedStart();
      throw new ManagementException(e);
    }
  }
This method will be invoked whenever a member wants to be a managing node. The exception
Management exception has to be handled by the caller.
geode-core/src/main/java/org/apache/geode/management/internal/FederatingManager.java