Search in sources :

Example 6 with SharedStoreSlavePolicy

use of org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy in project activemq-artemis by apache.

the class FailoverTest method testBackupServerNotRemoved.

@Test(timeout = 120000)
public void testBackupServerNotRemoved() throws Exception {
    // HORNETQ-720 Disabling test for replicating backups.
    if (!(backupServer.getServer().getHAPolicy() instanceof SharedStoreSlavePolicy)) {
        return;
    }
    locator.setFailoverOnInitialConnection(true);
    createSessionFactory();
    ClientSession session = sendAndConsume(sf, true);
    CountDownSessionFailureListener listener = new CountDownSessionFailureListener(session);
    session.addFailureListener(listener);
    backupServer.stop();
    liveServer.crash();
    // To reload security or other settings that are read during startup
    beforeRestart(backupServer);
    backupServer.start();
    Assert.assertTrue("session failure listener", listener.getLatch().await(5, TimeUnit.SECONDS));
    ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
    ClientMessage message = session.createMessage(true);
    setBody(0, message);
    producer.send(message);
}
Also used : SharedStoreSlavePolicy(org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy) ClientSession(org.apache.activemq.artemis.api.core.client.ClientSession) ClientMessage(org.apache.activemq.artemis.api.core.client.ClientMessage) CountDownSessionFailureListener(org.apache.activemq.artemis.tests.util.CountDownSessionFailureListener) ClientProducer(org.apache.activemq.artemis.api.core.client.ClientProducer) Test(org.junit.Test)

Example 7 with SharedStoreSlavePolicy

use of org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy in project activemq-artemis by apache.

the class FailBackAutoTest method testAutoFailback.

@Test
public void testAutoFailback() throws Exception {
    ((SharedStoreSlavePolicy) backupServer.getServer().getHAPolicy()).setRestartBackup(false);
    createSessionFactory();
    final CountDownLatch latch = new CountDownLatch(1);
    ClientSession session = sendAndConsume(sf, true);
    CountDownSessionFailureListener listener = new CountDownSessionFailureListener(latch, session);
    session.addFailureListener(listener);
    liveServer.crash();
    assertTrue(latch.await(5, TimeUnit.SECONDS));
    log.info("backup (nowLive) topology = " + backupServer.getServer().getClusterManager().getDefaultConnection(null).getTopology().describe());
    log.info("Server Crash!!!");
    ClientProducer producer = session.createProducer(ADDRESS);
    ClientMessage message = session.createMessage(true);
    setBody(0, message);
    producer.send(message);
    verifyMessageOnServer(1, 1);
    session.removeFailureListener(listener);
    final CountDownLatch latch2 = new CountDownLatch(1);
    listener = new CountDownSessionFailureListener(latch2, session);
    session.addFailureListener(listener);
    log.info("******* starting live server back");
    liveServer.start();
    Thread.sleep(1000);
    System.out.println("After failback: " + locator.getTopology().describe());
    assertTrue(latch2.await(5, TimeUnit.SECONDS));
    message = session.createMessage(true);
    setBody(1, message);
    producer.send(message);
    session.close();
    verifyMessageOnServer(0, 1);
    wrapUpSessionFactory();
}
Also used : SharedStoreSlavePolicy(org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy) ClientSession(org.apache.activemq.artemis.api.core.client.ClientSession) ClientMessage(org.apache.activemq.artemis.api.core.client.ClientMessage) CountDownLatch(java.util.concurrent.CountDownLatch) CountDownSessionFailureListener(org.apache.activemq.artemis.tests.util.CountDownSessionFailureListener) ClientProducer(org.apache.activemq.artemis.api.core.client.ClientProducer) Test(org.junit.Test)

Example 8 with SharedStoreSlavePolicy

use of org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy in project activemq-artemis by apache.

the class FailBackAutoTest method testFailBack.

/**
 * Basic fail-back test.
 *
 * @throws Exception
 */
@Test
public void testFailBack() throws Exception {
    ((SharedStoreSlavePolicy) backupServer.getServer().getHAPolicy()).setRestartBackup(false);
    createSessionFactory();
    ClientSession session = sendAndConsume(sf, true);
    ClientProducer producer = session.createProducer(ADDRESS);
    sendMessages(session, producer, NUM_MESSAGES);
    session.commit();
    crash(session);
    session.start();
    ClientConsumer consumer = session.createConsumer(ADDRESS);
    receiveMessages(consumer, 0, NUM_MESSAGES, true);
    producer = session.createProducer(ADDRESS);
    sendMessages(session, producer, 2 * NUM_MESSAGES);
    session.commit();
    assertFalse("must NOT be a backup", liveServer.getServer().getHAPolicy().isBackup());
    adaptLiveConfigForReplicatedFailBack(liveServer);
    CountDownSessionFailureListener listener = new CountDownSessionFailureListener(session);
    session.addFailureListener(listener);
    liveServer.start();
    assertTrue(listener.getLatch().await(5, TimeUnit.SECONDS));
    assertTrue("live initialized after restart", liveServer.getServer().waitForActivation(15, TimeUnit.SECONDS));
    session.start();
    receiveMessages(consumer, 0, NUM_MESSAGES, true);
}
Also used : SharedStoreSlavePolicy(org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy) ClientSession(org.apache.activemq.artemis.api.core.client.ClientSession) ClientConsumer(org.apache.activemq.artemis.api.core.client.ClientConsumer) ClientProducer(org.apache.activemq.artemis.api.core.client.ClientProducer) CountDownSessionFailureListener(org.apache.activemq.artemis.tests.util.CountDownSessionFailureListener) Test(org.junit.Test)

Example 9 with SharedStoreSlavePolicy

use of org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy in project activemq-artemis by apache.

the class ActiveMQServerControlImpl method setFailoverOnServerShutdown.

@Override
public void setFailoverOnServerShutdown(boolean failoverOnServerShutdown) {
    checkStarted();
    clearIO();
    try {
        HAPolicy haPolicy = server.getHAPolicy();
        if (haPolicy instanceof SharedStoreSlavePolicy) {
            ((SharedStoreSlavePolicy) haPolicy).setFailoverOnServerShutdown(failoverOnServerShutdown);
        }
    } finally {
        blockOnIO();
    }
}
Also used : SharedStoreSlavePolicy(org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy) HAPolicy(org.apache.activemq.artemis.core.server.cluster.ha.HAPolicy)

Example 10 with SharedStoreSlavePolicy

use of org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy in project activemq-artemis by apache.

the class HAPolicyConfigurationTest method SharedStoreSlaveTest.

@Test
public void SharedStoreSlaveTest() throws Exception {
    Configuration configuration = createConfiguration("shared-store-slave-hapolicy-config.xml");
    ActiveMQServerImpl server = new ActiveMQServerImpl(configuration);
    try {
        server.start();
        Activation activation = server.getActivation();
        assertTrue(activation instanceof SharedStoreBackupActivation);
        HAPolicy haPolicy = server.getHAPolicy();
        assertTrue(haPolicy instanceof SharedStoreSlavePolicy);
        SharedStoreSlavePolicy sharedStoreSlavePolicy = (SharedStoreSlavePolicy) haPolicy;
        assertFalse(sharedStoreSlavePolicy.isFailoverOnServerShutdown());
        assertFalse(sharedStoreSlavePolicy.isRestartBackup());
        ScaleDownPolicy scaleDownPolicy = sharedStoreSlavePolicy.getScaleDownPolicy();
        assertNotNull(scaleDownPolicy);
        assertEquals(scaleDownPolicy.getGroupName(), "boo!");
        assertEquals(scaleDownPolicy.getDiscoveryGroup(), "wahey");
        List<String> connectors = scaleDownPolicy.getConnectors();
        assertNotNull(connectors);
        assertEquals(connectors.size(), 0);
    } finally {
        server.stop();
    }
}
Also used : SharedStoreSlavePolicy(org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy) Configuration(org.apache.activemq.artemis.core.config.Configuration) StoreConfiguration(org.apache.activemq.artemis.core.config.StoreConfiguration) HAPolicyConfiguration(org.apache.activemq.artemis.core.config.HAPolicyConfiguration) HAPolicy(org.apache.activemq.artemis.core.server.cluster.ha.HAPolicy) SharedNothingBackupActivation(org.apache.activemq.artemis.core.server.impl.SharedNothingBackupActivation) ColocatedActivation(org.apache.activemq.artemis.core.server.impl.ColocatedActivation) Activation(org.apache.activemq.artemis.core.server.impl.Activation) SharedNothingLiveActivation(org.apache.activemq.artemis.core.server.impl.SharedNothingLiveActivation) SharedStoreLiveActivation(org.apache.activemq.artemis.core.server.impl.SharedStoreLiveActivation) SharedStoreBackupActivation(org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation) LiveOnlyActivation(org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation) ScaleDownPolicy(org.apache.activemq.artemis.core.server.cluster.ha.ScaleDownPolicy) ActiveMQServerImpl(org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl) SharedStoreBackupActivation(org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation) Test(org.junit.Test)

Aggregations

SharedStoreSlavePolicy (org.apache.activemq.artemis.core.server.cluster.ha.SharedStoreSlavePolicy)10 Test (org.junit.Test)8 HAPolicy (org.apache.activemq.artemis.core.server.cluster.ha.HAPolicy)7 Configuration (org.apache.activemq.artemis.core.config.Configuration)5 HAPolicyConfiguration (org.apache.activemq.artemis.core.config.HAPolicyConfiguration)5 StoreConfiguration (org.apache.activemq.artemis.core.config.StoreConfiguration)5 Activation (org.apache.activemq.artemis.core.server.impl.Activation)5 ActiveMQServerImpl (org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl)5 ColocatedActivation (org.apache.activemq.artemis.core.server.impl.ColocatedActivation)5 LiveOnlyActivation (org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation)5 SharedNothingBackupActivation (org.apache.activemq.artemis.core.server.impl.SharedNothingBackupActivation)5 SharedNothingLiveActivation (org.apache.activemq.artemis.core.server.impl.SharedNothingLiveActivation)5 SharedStoreBackupActivation (org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation)5 SharedStoreLiveActivation (org.apache.activemq.artemis.core.server.impl.SharedStoreLiveActivation)5 ClientProducer (org.apache.activemq.artemis.api.core.client.ClientProducer)3 ClientSession (org.apache.activemq.artemis.api.core.client.ClientSession)3 ScaleDownPolicy (org.apache.activemq.artemis.core.server.cluster.ha.ScaleDownPolicy)3 CountDownSessionFailureListener (org.apache.activemq.artemis.tests.util.CountDownSessionFailureListener)3 ClientMessage (org.apache.activemq.artemis.api.core.client.ClientMessage)2 ColocatedPolicy (org.apache.activemq.artemis.core.server.cluster.ha.ColocatedPolicy)2