private void startLocalManagement() {
    synchronized (this) {
      if (repo.getLocalMonitoringRegion() != null) {
        return;
      }
      singleThreadFederationScheduler.set(newSingleThreadScheduledExecutor("Management Task"));

      if (logger.isDebugEnabled()) {
        logger.debug("Creating  Management Region :");
      }

      // Create anonymous stats holder for Management Regions
      HasCachePerfStats monitoringRegionStats = new HasCachePerfStats() {

        @Override
        public CachePerfStats getCachePerfStats() {
          return new CachePerfStats(cache.getDistributedSystem(),
              "RegionStats-managementRegionStats", statisticsClock);
        }

        @Override
        public boolean hasOwnStats() {
          return true;
        }
      };

      InternalRegionFactory<String, Object> monitorFactory = cache.createInternalRegionFactory();
      monitorFactory.setScope(Scope.DISTRIBUTED_NO_ACK);
      monitorFactory.setDataPolicy(DataPolicy.REPLICATE);
      monitorFactory.setConcurrencyChecksEnabled(false);
      CacheListener<String, Object> localListener = new MonitoringRegionCacheListener(service);
      monitorFactory.addCacheListener(localListener);
      monitorFactory.setIsUsedForMetaRegion(true);
      monitorFactory.setCachePerfStatsHolder(monitoringRegionStats);

      InternalRegionFactory<NotificationKey, Notification> notificationFactory =
          cache.createInternalRegionFactory();
      notificationFactory.setScope(Scope.DISTRIBUTED_NO_ACK);
      notificationFactory.setDataPolicy(DataPolicy.EMPTY);
      notificationFactory.setConcurrencyChecksEnabled(false);
      notificationFactory.setIsUsedForMetaRegion(true);
      notificationFactory.setCachePerfStatsHolder(monitoringRegionStats);

      String appender = MBeanJMXAdapter.getUniqueIDForMember(system.getDistributedMember());

      try {
        repo.setLocalMonitoringRegion(
            monitorFactory.create(ManagementConstants.MONITORING_REGION + "_" + appender));
      } catch (TimeoutException | RegionExistsException e) {
        throw new ManagementException(e);
      }

      boolean notifRegionCreated = false;
      try {
        repo.setLocalNotificationRegion(
            notificationFactory.create(ManagementConstants.NOTIFICATION_REGION + "_" + appender));
        notifRegionCreated = true;
      } catch (TimeoutException | RegionExistsException e) {
        throw new ManagementException(e);
      } finally {
        if (!notifRegionCreated) {
          repo.getLocalMonitoringRegion().localDestroyRegion();

        }
      }

      managementTask.set(new ManagementTask());
      // call run to get us initialized immediately with a sync call
      managementTask.get().run();
      // All local resources are created for the ManagementTask
      // Now Management tasks can proceed.
      int updateRate = system.getConfig().getJmxManagerUpdateRate();
      singleThreadFederationScheduler.get().scheduleAtFixedRate(managementTask.get(), updateRate,
          updateRate, TimeUnit.MILLISECONDS);

      if (logger.isDebugEnabled()) {
        logger.debug("Management Region created with Name : {}",
            repo.getLocalMonitoringRegion().getName());
        logger.debug("Notification Region created with Name : {}",
            repo.getLocalNotificationRegion().getName());
      }
    }
  }
Managed Node side resources are created

<p>
Management Region : its a Replicated NO_ACK region Notification Region : its a Replicated Proxy
NO_ACK region
geode-core/src/main/java/org/apache/geode/management/internal/LocalManager.java