You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2019/08/08 17:16:32 UTC

[activemq-artemis] branch master updated: ARTEMIS-2448 group-name ignored in replicated colocated setup

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

clebertsuconic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/master by this push:
     new 1913231  ARTEMIS-2448 group-name ignored in replicated colocated setup
     new 8049300  This closes #2789
1913231 is described below

commit 191323176a7a2de73295e61ac4066578ba31754a
Author: Francesco Nigro <ni...@gmail.com>
AuthorDate: Wed Aug 7 19:26:21 2019 +0200

    ARTEMIS-2448 group-name ignored in replicated colocated setup
---
 .../artemis/core/server/cluster/ha/ColocatedHAManager.java   | 12 +++++++++++-
 .../artemis/core/server/cluster/ha/ColocatedPolicy.java      |  6 +++++-
 .../artemis/core/config/impl/HAPolicyConfigurationTest.java  |  2 ++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ha/ColocatedHAManager.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ha/ColocatedHAManager.java
index 505859c..90f5521 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ha/ColocatedHAManager.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ha/ColocatedHAManager.java
@@ -19,6 +19,7 @@ package org.apache.activemq.artemis.core.server.cluster.ha;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 
 import org.apache.activemq.artemis.api.core.Pair;
@@ -172,10 +173,19 @@ public class ColocatedHAManager implements HAManager {
     * @throws Exception
     */
    private synchronized boolean activateReplicatedBackup(SimpleString nodeID) throws Exception {
+      final TopologyMember member;
+      try {
+         member = server.getClusterManager().getDefaultConnection(null).getTopology().getMember(nodeID.toString());
+         if (!Objects.equals(member.getBackupGroupName(), haPolicy.getBackupPolicy().getBackupGroupName())) {
+            return false;
+         }
+      } catch (Exception e) {
+         ActiveMQServerLogger.LOGGER.activateReplicatedBackupFailed(e);
+         return false;
+      }
       Configuration configuration = server.getConfiguration().copy();
       ActiveMQServer backup = server.createBackupServer(configuration);
       try {
-         TopologyMember member = server.getClusterManager().getDefaultConnection(null).getTopology().getMember(nodeID.toString());
          int portOffset = haPolicy.getBackupPortOffset() * (backupServers.size() + 1);
          String name = "colocated_backup_" + backupServers.size() + 1;
          //make sure we don't restart as we are colocated
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ha/ColocatedPolicy.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ha/ColocatedPolicy.java
index b1ace20..b72c755 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ha/ColocatedPolicy.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ha/ColocatedPolicy.java
@@ -65,7 +65,11 @@ public class ColocatedPolicy implements HAPolicy<LiveActivation> {
 
    @Override
    public String getBackupGroupName() {
-      return null;
+      final HAPolicy<LiveActivation> livePolicy = this.livePolicy;
+      if (livePolicy == null) {
+         return null;
+      }
+      return livePolicy.getBackupGroupName();
    }
 
    @Override
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/HAPolicyConfigurationTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/HAPolicyConfigurationTest.java
index fd9b523..425ff7b 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/HAPolicyConfigurationTest.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/HAPolicyConfigurationTest.java
@@ -358,6 +358,8 @@ public class HAPolicyConfigurationTest extends ActiveMQTestBase {
          assertNotNull(livePolicy);
 
          assertEquals(livePolicy.getGroupName(), "purple");
+         assertEquals(livePolicy.getGroupName(), livePolicy.getBackupGroupName());
+         assertEquals(livePolicy.getBackupGroupName(), haPolicy.getBackupGroupName());
          assertTrue(livePolicy.isCheckForLiveServer());
          assertEquals(livePolicy.getClusterName(), "abcdefg");
          ReplicaPolicy backupPolicy = (ReplicaPolicy) colocatedPolicy.getBackupPolicy();