You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2015/05/20 14:43:33 UTC
[4/8] activemq git commit:
https://issues.apache.org/jira/browse/AMQ-5164
https://issues.apache.org/jira/browse/AMQ-4842 - master slave advisory needed
to wait for failover reconnect - exponential backoff was sometimes giving to
long a delay. Retroactive
https://issues.apache.org/jira/browse/AMQ-5164 https://issues.apache.org/jira/browse/AMQ-4842 - master slave advisory needed to wait for failover reconnect - exponential backoff was sometimes giving to long a delay. Retroactive override needs to applied after policies. Tests reinstated
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/9ad65c62
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/9ad65c62
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/9ad65c62
Branch: refs/heads/master
Commit: 9ad65c62ed17eef62f62c901620ed2d57171a8d0
Parents: baa10ed
Author: gtully <ga...@gmail.com>
Authored: Wed May 20 09:56:38 2015 +0100
Committer: gtully <ga...@gmail.com>
Committed: Wed May 20 09:57:05 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/activemq/broker/region/Topic.java | 13 ++++++-------
.../broker/ft/QueueMasterSlaveSingleUrlTest.java | 13 +------------
.../broker/ft/QueueMasterSlaveTestSupport.java | 11 ++++++++---
.../broker/ft/kahaDbJdbcLeaseQueueMasterSlaveTest.java | 12 +++++++-----
4 files changed, 22 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/9ad65c62/activemq-broker/src/main/java/org/apache/activemq/broker/region/Topic.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/region/Topic.java b/activemq-broker/src/main/java/org/apache/activemq/broker/region/Topic.java
index a063125..21e0c1b 100755
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/region/Topic.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/region/Topic.java
@@ -87,19 +87,18 @@ public class Topic extends BaseDestination implements Task {
DestinationStatistics parentStats, TaskRunnerFactory taskFactory) throws Exception {
super(brokerService, store, destination, parentStats);
this.topicStore = store;
- // set default subscription recovery policy
- if (AdvisorySupport.isMasterBrokerAdvisoryTopic(destination)) {
- subscriptionRecoveryPolicy = new LastImageSubscriptionRecoveryPolicy();
- setAlwaysRetroactive(true);
- } else {
- subscriptionRecoveryPolicy = new RetainedMessageSubscriptionRecoveryPolicy(null);
- }
+ subscriptionRecoveryPolicy = new RetainedMessageSubscriptionRecoveryPolicy(null);
this.taskRunner = taskFactory.createTaskRunner(this, "Topic " + destination.getPhysicalName());
}
@Override
public void initialize() throws Exception {
super.initialize();
+ // set non default subscription recovery policy (override policyEntries)
+ if (AdvisorySupport.isMasterBrokerAdvisoryTopic(destination)) {
+ subscriptionRecoveryPolicy = new LastImageSubscriptionRecoveryPolicy();
+ setAlwaysRetroactive(true);
+ }
if (store != null) {
// AMQ-2586: Better to leave this stat at zero than to give the user
// misleading metrics.
http://git-wip-us.apache.org/repos/asf/activemq/blob/9ad65c62/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveSingleUrlTest.java
----------------------------------------------------------------------
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveSingleUrlTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveSingleUrlTest.java
index 7dc88f7..b7a35f4 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveSingleUrlTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveSingleUrlTest.java
@@ -28,7 +28,7 @@ import org.junit.Ignore;
public class QueueMasterSlaveSingleUrlTest extends QueueMasterSlaveTestSupport {
private final String brokerUrl = "tcp://localhost:62001";
- private final String singleUriString = "failover://(" + brokerUrl +")?randomize=false";
+ private final String singleUriString = "failover://(" + brokerUrl +")?randomize=false&useExponentialBackOff=false";
@Override
protected void setUp() throws Exception {
@@ -81,15 +81,4 @@ public class QueueMasterSlaveSingleUrlTest extends QueueMasterSlaveTestSupport {
}).start();
}
-
- // The @Ignore is just here for documentation, since this is a JUnit3 test
- // I added the sleep because without it the two other test cases fail. I haven't looked into it, but
- // my guess whatever setUp does isn't really finished when the teardown runs.
- @Ignore("See https://issues.apache.org/jira/browse/AMQ-5164")
- @Override
- public void testAdvisory() throws Exception {
- Thread.sleep(5 * 1000);
- //super.testAdvisory();
- }
-
}
http://git-wip-us.apache.org/repos/asf/activemq/blob/9ad65c62/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveTestSupport.java
----------------------------------------------------------------------
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveTestSupport.java b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveTestSupport.java
index 2808ebe..a7a525e 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveTestSupport.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/QueueMasterSlaveTestSupport.java
@@ -44,13 +44,15 @@ abstract public class QueueMasterSlaveTestSupport extends JmsTopicSendReceiveWit
protected BrokerService master;
protected AtomicReference<BrokerService> slave = new AtomicReference<BrokerService>();
- protected CountDownLatch slaveStarted = new CountDownLatch(1);
+ protected CountDownLatch slaveStarted;
protected int inflightMessageCount;
protected int failureCount = 50;
protected String uriString = "failover://(tcp://localhost:62001,tcp://localhost:62002)?randomize=false&useExponentialBackOff=false";
@Override
protected void setUp() throws Exception {
+ slaveStarted = new CountDownLatch(1);
+ slave.set(null);
setMaxTestTime(TimeUnit.MINUTES.toMillis(10));
setAutoFail(true);
if (System.getProperty("basedir") == null) {
@@ -137,18 +139,21 @@ abstract public class QueueMasterSlaveTestSupport extends JmsTopicSendReceiveWit
qConsumer = session.createConsumer(new ActiveMQQueue("Consumer.A.VirtualTopic.TA1"));
- javax.jms.Message message = qConsumer.receive(4000);
+ javax.jms.Message message = qConsumer.receive(20000);
assertNotNull("Get message after failover", message);
assertEquals("correct message", text, ((TextMessage)message).getText());
}
public void testAdvisory() throws Exception {
MessageConsumer advConsumer = session.createConsumer(AdvisorySupport.getMasterBrokerAdvisoryTopic());
+ Message advisoryMessage = advConsumer.receive(5000);
+ LOG.info("received " + advisoryMessage);
+ assertNotNull("Didn't received advisory", advisoryMessage);
master.stop();
assertTrue("slave started", slaveStarted.await(60, TimeUnit.SECONDS));
LOG.info("slave started");
- Message advisoryMessage = advConsumer.receive(5000);
+ advisoryMessage = advConsumer.receive(20000);
LOG.info("received " + advisoryMessage);
assertNotNull("Didn't received advisory", advisoryMessage);
http://git-wip-us.apache.org/repos/asf/activemq/blob/9ad65c62/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/kahaDbJdbcLeaseQueueMasterSlaveTest.java
----------------------------------------------------------------------
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/kahaDbJdbcLeaseQueueMasterSlaveTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/kahaDbJdbcLeaseQueueMasterSlaveTest.java
index ee7ca0f..4cfb5e3 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/kahaDbJdbcLeaseQueueMasterSlaveTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/ft/kahaDbJdbcLeaseQueueMasterSlaveTest.java
@@ -34,12 +34,19 @@ public class kahaDbJdbcLeaseQueueMasterSlaveTest extends QueueMasterSlaveTestSup
protected String MASTER_URL = "tcp://localhost:62001";
protected String SLAVE_URL = "tcp://localhost:62002";
+ @Override
protected void setUp() throws Exception {
// startup db
sharedDs = new SyncCreateDataSource((EmbeddedDataSource) DataSourceServiceSupport.createDataSource(IOHelper.getDefaultDataDirectory()));
super.setUp();
}
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ DataSourceServiceSupport.shutdownDefaultDataSource(((SyncCreateDataSource)sharedDs).getDelegate());
+ }
+
protected void createMaster() throws Exception {
master = new BrokerService();
master.setBrokerName("master");
@@ -102,11 +109,6 @@ public class kahaDbJdbcLeaseQueueMasterSlaveTest extends QueueMasterSlaveTestSup
kahaDBPersistenceAdapter.getLocker().setLockAcquireSleepInterval(500);
}
- @Override
- public void testVirtualTopicFailover() throws Exception {
- // Ignoring for now, see AMQ-4842
- }
-
protected DataSource getExistingDataSource() throws Exception {
return sharedDs;
}