You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2021/07/04 19:33:12 UTC
[activemq-artemis] branch main updated: ARTEMIS-3360 Backup
connector ignores TTL settings on the connection factories
This is an automated email from the ASF dual-hosted git repository.
jbertram pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new bea0568 ARTEMIS-3360 Backup connector ignores TTL settings on the connection factories
new 07331f9 This closes #3630
bea0568 is described below
commit bea0568a88cdedd073e57db2d2f1f4635fdab8d9
Author: franz1981 <ni...@gmail.com>
AuthorDate: Mon Jun 21 11:41:47 2021 +0200
ARTEMIS-3360 Backup connector ignores TTL settings on the connection factories
---
.../artemis/core/server/cluster/BackupManager.java | 40 +++++++++++-----------
....java => BackupManagerInheritedConfigTest.java} | 23 +++++--------
2 files changed, 29 insertions(+), 34 deletions(-)
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/BackupManager.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/BackupManager.java
index db82925..62b9563 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/BackupManager.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/BackupManager.java
@@ -147,13 +147,13 @@ public class BackupManager implements ActiveMQComponent {
if (dg == null)
return;
- DiscoveryBackupConnector backupConnector = new DiscoveryBackupConnector(dg, config.getName(), connector, config.getRetryInterval(), clusterManager);
+ DiscoveryBackupConnector backupConnector = new DiscoveryBackupConnector(dg, config, connector, clusterManager);
backupConnectors.add(backupConnector);
} else {
TransportConfiguration[] tcConfigs = config.getTransportConfigurations(configuration);
- StaticBackupConnector backupConnector = new StaticBackupConnector(tcConfigs, config.getName(), connector, config.getRetryInterval(), clusterManager);
+ StaticBackupConnector backupConnector = new StaticBackupConnector(tcConfigs, config, connector, clusterManager);
backupConnectors.add(backupConnector);
}
@@ -188,9 +188,8 @@ public class BackupManager implements ActiveMQComponent {
public abstract class BackupConnector {
private volatile ServerLocatorInternal backupServerLocator;
- private String name;
+ protected final ClusterConnectionConfiguration config;
private TransportConfiguration connector;
- protected long retryInterval;
private ClusterManager clusterManager;
private volatile boolean stopping = false;
private volatile boolean announcingBackup;
@@ -198,16 +197,14 @@ public class BackupManager implements ActiveMQComponent {
@Override
public String toString() {
- return "BackupConnector{" + "name='" + name + '\'' + ", connector=" + connector + '}';
+ return "BackupConnector{" + "name='" + config.getName() + '\'' + ", connector=" + connector + '}';
}
- private BackupConnector(String name,
+ private BackupConnector(ClusterConnectionConfiguration config,
TransportConfiguration connector,
- long retryInterval,
ClusterManager clusterManager) {
- this.name = name;
+ this.config = config;
this.connector = connector;
- this.retryInterval = retryInterval;
this.clusterManager = clusterManager;
}
@@ -228,7 +225,7 @@ public class BackupManager implements ActiveMQComponent {
stopping = false;
backupAnnounced = false;
- ClusterConnection clusterConnection = clusterManager.getClusterConnection(name);
+ ClusterConnection clusterConnection = clusterManager.getClusterConnection(config.getName());
//NB we use the same topology as the sister cluster connection so it knows when started about all the nodes to bridge to
backupServerLocator = createServerLocator(clusterConnection.getTopology());
@@ -298,14 +295,14 @@ public class BackupManager implements ActiveMQComponent {
announceBackup();
}
- }, retryInterval, TimeUnit.MILLISECONDS);
+ }, config.getRetryInterval(), TimeUnit.MILLISECONDS);
}
/*
* called to notify the cluster manager about the backup
* */
public void informTopology() {
- clusterManager.informClusterOfBackup(name);
+ clusterManager.informClusterOfBackup(config.getName());
}
/*
@@ -351,11 +348,10 @@ public class BackupManager implements ActiveMQComponent {
private final TransportConfiguration[] tcConfigs;
private StaticBackupConnector(TransportConfiguration[] tcConfigs,
- String name,
+ ClusterConnectionConfiguration config,
TransportConfiguration connector,
- long retryInterval,
ClusterManager clusterManager) {
- super(name, connector, retryInterval, clusterManager);
+ super(config, connector, clusterManager);
this.tcConfigs = tcConfigs;
}
@@ -367,7 +363,9 @@ public class BackupManager implements ActiveMQComponent {
}
ServerLocatorImpl locator = new ServerLocatorImpl(topology, true, tcConfigs);
locator.setClusterConnection(true);
- locator.setRetryInterval(retryInterval);
+ locator.setRetryInterval(config.getRetryInterval());
+ locator.setClientFailureCheckPeriod(config.getClientFailureCheckPeriod());
+ locator.setConnectionTTL(config.getConnectionTTL());
locator.setProtocolManagerFactory(ActiveMQServerSideProtocolManagerFactory.getInstance(locator, server.getStorageManager()));
return locator;
}
@@ -389,17 +387,19 @@ public class BackupManager implements ActiveMQComponent {
private final DiscoveryGroupConfiguration discoveryGroupConfiguration;
private DiscoveryBackupConnector(DiscoveryGroupConfiguration discoveryGroupConfiguration,
- String name,
+ ClusterConnectionConfiguration config,
TransportConfiguration connector,
- long retryInterval,
ClusterManager clusterManager) {
- super(name, connector, retryInterval, clusterManager);
+ super(config, connector, clusterManager);
this.discoveryGroupConfiguration = discoveryGroupConfiguration;
}
@Override
public ServerLocatorInternal createServerLocator(Topology topology) {
- return new ServerLocatorImpl(topology, true, discoveryGroupConfiguration).setRetryInterval(retryInterval);
+ return new ServerLocatorImpl(topology, true, discoveryGroupConfiguration)
+ .setRetryInterval(config.getRetryInterval())
+ .setClientFailureCheckPeriod(config.getClientFailureCheckPeriod())
+ .setConnectionTTL(config.getConnectionTTL());
}
@Override
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/CheckRetryIntervalBackupManagerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupManagerInheritedConfigTest.java
similarity index 82%
rename from tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/CheckRetryIntervalBackupManagerTest.java
rename to tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupManagerInheritedConfigTest.java
index ae96b5d..65414ff 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/CheckRetryIntervalBackupManagerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/BackupManagerInheritedConfigTest.java
@@ -17,27 +17,16 @@
package org.apache.activemq.artemis.tests.integration.cluster.failover;
import org.apache.activemq.artemis.api.core.TransportConfiguration;
-import org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryInternal;
import org.apache.activemq.artemis.core.config.ha.SharedStoreMasterPolicyConfiguration;
import org.apache.activemq.artemis.core.config.ha.SharedStoreSlavePolicyConfiguration;
import org.apache.activemq.artemis.core.server.cluster.BackupManager;
import org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl;
-import org.apache.activemq.artemis.tests.util.CountDownSessionFailureListener;
import org.apache.activemq.artemis.tests.util.TransportConfigurationUtils;
import org.apache.activemq.artemis.utils.Wait;
-import org.jboss.logging.Logger;
import org.junit.Assert;
import org.junit.Test;
-public class CheckRetryIntervalBackupManagerTest extends FailoverTestBase {
-
- private static final Logger log = Logger.getLogger(CheckRetryIntervalBackupManagerTest.class);
-
- private volatile CountDownSessionFailureListener listener;
-
- private volatile ClientSessionFactoryInternal sf;
-
- private final Object lockFail = new Object();
+public class BackupManagerInheritedConfigTest extends FailoverTestBase {
@Override
protected void createConfigs() throws Exception {
@@ -45,7 +34,11 @@ public class CheckRetryIntervalBackupManagerTest extends FailoverTestBase {
TransportConfiguration liveConnector = getConnectorTransportConfiguration(true);
TransportConfiguration backupConnector = getConnectorTransportConfiguration(false);
- backupConfig = super.createDefaultInVMConfig().clearAcceptorConfigurations().addAcceptorConfiguration(getAcceptorTransportConfiguration(false)).setHAPolicyConfiguration(new SharedStoreSlavePolicyConfiguration()).addConnectorConfiguration(liveConnector.getName(), liveConnector).addConnectorConfiguration(backupConnector.getName(), backupConnector).addClusterConfiguration(createBasicClusterConfig(backupConnector.getName(), liveConnector.getName()).setRetryInterval(333));
+ backupConfig = super.createDefaultInVMConfig().clearAcceptorConfigurations().addAcceptorConfiguration(getAcceptorTransportConfiguration(false)).setHAPolicyConfiguration(new SharedStoreSlavePolicyConfiguration()).addConnectorConfiguration(liveConnector.getName(), liveConnector).addConnectorConfiguration(backupConnector.getName(), backupConnector)
+ .addClusterConfiguration(createBasicClusterConfig(backupConnector.getName(), liveConnector.getName())
+ .setRetryInterval(333)
+ .setClientFailureCheckPeriod(1000)
+ .setConnectionTTL(5000));
backupServer = createTestableServer(backupConfig);
@@ -55,13 +48,15 @@ public class CheckRetryIntervalBackupManagerTest extends FailoverTestBase {
}
@Test
- public void testValidateRetryInterval() {
+ public void testValidateInheritedClusterConnectionConfig() {
ActiveMQServerImpl server = (ActiveMQServerImpl) backupServer.getServer();
for (BackupManager.BackupConnector backupConnector : server.getBackupManager().getBackupConnectors()) {
Wait.assertTrue(() -> backupConnector.getBackupServerLocator() != null);
Assert.assertEquals(333, backupConnector.getBackupServerLocator().getRetryInterval());
Assert.assertEquals(-1, backupConnector.getBackupServerLocator().getReconnectAttempts());
+ Assert.assertEquals(1000, backupConnector.getBackupServerLocator().getClientFailureCheckPeriod());
+ Assert.assertEquals(5000, backupConnector.getBackupServerLocator().getConnectionTTL());
}
}