This is an automated email from the ASF dual-hosted git repository.

jinmeiliao pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new ae03b84  GEODE-3973: have the cluster configuration start 
synchronously when starting a locator (#1050)
ae03b84 is described below

commit ae03b844fdb0c38296a4ae535a3842185d08c37a
Author: jinmeiliao <[email protected]>
AuthorDate: Tue Nov 14 08:18:01 2017 -0800

    GEODE-3973: have the cluster configuration start synchronously when 
starting a locator (#1050)
---
 .../distributed/internal/InternalLocator.java      | 80 ++++++++++------------
 1 file changed, 35 insertions(+), 45 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
index 942bbf2..73b971e 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
@@ -602,31 +602,6 @@ public class InternalLocator extends Locator implements 
ConnectListener {
         s);
   }
 
-  class SharedConfigurationRunnable implements Runnable {
-
-    private final InternalLocator locator = InternalLocator.this;
-
-    @Override
-    public void run() {
-      try {
-        if (this.locator.sharedConfig == null) {
-          // locator.sharedConfig will already be created in case of 
auto-reconnect
-          this.locator.sharedConfig = new 
ClusterConfigurationService(locator.myCache);
-        }
-        
this.locator.sharedConfig.initSharedConfiguration(this.locator.loadFromSharedConfigDir());
-        this.locator.installSharedConfigDistribution();
-        logger.info(
-            "Cluster configuration service start up completed successfully and 
is now running ....");
-      } catch (CancelException | LockServiceDestroyedException e) {
-        if (logger.isDebugEnabled()) {
-          logger.debug("Cluster configuration start up was cancelled", e);
-        }
-      } catch (Exception e) {
-        logger.error(e.getMessage(), e);
-      }
-    }
-  }
-
   /**
    * Start a distributed system whose life cycle is managed by this locator. 
When the locator is
    * stopped, this distributed system will be disconnected. If a distributed 
system already exists,
@@ -722,7 +697,7 @@ public class InternalLocator extends Locator implements 
ConnectListener {
     }
     startJmxManagerLocationService(internalCache);
 
-    startSharedConfigurationService(internalCache);
+    startSharedConfigurationService();
   }
 
   /**
@@ -1089,19 +1064,13 @@ public class InternalLocator extends Locator implements 
ConnectListener {
       this.myCache = newCache;
       this.myDs.setDependentLocator(this);
       logger.info("Locator restart: initializing TcpServer");
-      if (isSharedConfigurationEnabled()) {
-        this.sharedConfig = new ClusterConfigurationService(newCache);
-      }
+
       this.server.restarting(newSystem, newCache, this.sharedConfig);
       if (this.productUseLog.isClosed()) {
         this.productUseLog.reopen();
       }
       this.productUseLog.monitorUse(newSystem);
-      this.isSharedConfigurationStarted = true;
-      if (isSharedConfigurationEnabled()) {
-        ExecutorService es = newCache.getDistributionManager().getThreadPool();
-        es.execute(new SharedConfigurationRunnable());
-      }
+      startSharedConfigurationService();
       if (!this.server.isAlive()) {
         logger.info("Locator restart: starting TcpServer");
         startTcpServer();
@@ -1378,20 +1347,41 @@ public class InternalLocator extends Locator implements 
ConnectListener {
     }
   }
 
-  private void startSharedConfigurationService(InternalCache internalCache) {
+  private void startSharedConfigurationService() {
     installSharedConfigHandler();
 
-    if (this.config.getEnableClusterConfiguration() && 
!this.isSharedConfigurationStarted) {
-      if (!isDedicatedLocator()) {
-        logger.info("Cluster configuration service not enabled as it is only 
supported "
-            + "in dedicated locators");
-        return;
-      }
-
-      ExecutorService es = 
internalCache.getDistributionManager().getThreadPool();
-      es.execute(new SharedConfigurationRunnable());
-    } else {
+    if (!config.getEnableClusterConfiguration()) {
       logger.info("Cluster configuration service is disabled");
+      return;
+    }
+
+    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;
+    }
+
+    try {
+      if (this.locator.sharedConfig == null) {
+        // locator.sharedConfig will already be created in case of 
auto-reconnect
+        this.locator.sharedConfig = new 
ClusterConfigurationService(locator.myCache);
+      }
+      
this.locator.sharedConfig.initSharedConfiguration(this.locator.loadFromSharedConfigDir());
+      this.locator.installSharedConfigDistribution();
+      logger.info(
+          "Cluster configuration service start up completed successfully and 
is now running ....");
+      isSharedConfigurationStarted = true;
+    } catch (CancelException | LockServiceDestroyedException e) {
+      if (logger.isDebugEnabled()) {
+        logger.debug("Cluster configuration start up was cancelled", e);
+      }
+    } catch (Exception e) {
+      logger.error(e.getMessage(), e);
     }
   }
 

-- 
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].

Reply via email to