use of org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration in project activemq-artemis by apache.
the class MultiServerTestBase method setupBackupServer.
protected ActiveMQServer setupBackupServer(final int node, final int liveNode, final NodeManager nodeManager) throws Exception {
TransportConfiguration serverConfigAcceptor = createTransportConfiguration(useNetty(), true, generateParams(node, useNetty()));
TransportConfiguration thisConnector = createTransportConfiguration(useNetty(), false, generateParams(node, useNetty()));
Configuration configuration = createBasicConfig(useSharedStorage() ? liveNode : node).clearAcceptorConfigurations().addAcceptorConfiguration(serverConfigAcceptor).addConnectorConfiguration("thisConnector", thisConnector).setHAPolicyConfiguration(useSharedStorage() ? new SharedStoreSlavePolicyConfiguration() : new ReplicaPolicyConfiguration());
List<String> targetServersOnConnection = new ArrayList<>();
for (int targetNode = 0; targetNode < getNumberOfServers(); targetNode++) {
// if (targetNode == node)
// {
// // moving on from itself
// continue;
// }
String targetConnectorName = "targetConnector-" + targetNode;
TransportConfiguration targetServer = createTransportConfiguration(useNetty(), false, generateParams(targetNode, useNetty()));
configuration.addConnectorConfiguration(targetConnectorName, targetServer);
targetServersOnConnection.add(targetConnectorName);
}
ClusterConnectionConfiguration clusterConf = new ClusterConnectionConfiguration().setName("localCluster" + node).setAddress("cluster-queues").setConnectorName("thisConnector").setRetryInterval(100).setConfirmationWindowSize(1024).setMessageLoadBalancingType(MessageLoadBalancingType.ON_DEMAND).setStaticConnectors(targetServersOnConnection);
configuration.getClusterConfigurations().add(clusterConf);
ActiveMQServer server;
if (useSharedStorage()) {
server = createInVMFailoverServer(true, configuration, nodeManager, liveNode);
} else {
server = addServer(ActiveMQServers.newActiveMQServer(configuration, useRealFiles()));
}
server.setIdentity(this.getClass().getSimpleName() + "/Backup(" + node + " of live " + liveNode + ")");
return server;
}
use of org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration in project activemq-artemis by apache.
the class AutomaticColocatedQuorumVoteTest method getConfiguration.
private Configuration getConfiguration(String identity, boolean scaleDown, TransportConfiguration liveConnector, TransportConfiguration liveAcceptor, TransportConfiguration... otherLiveNodes) throws Exception {
Configuration configuration = createDefaultInVMConfig().clearAcceptorConfigurations().addAcceptorConfiguration(liveAcceptor).addConnectorConfiguration(liveConnector.getName(), liveConnector).setJournalDirectory(getJournalDir() + identity).setBindingsDirectory(getBindingsDir() + identity).setLargeMessagesDirectory(getLargeMessagesDir() + identity).setPagingDirectory(getPageDir() + identity).addQueueConfiguration(new CoreQueueConfiguration().setAddress("testQueue").setName("testQueue"));
List<String> transportConfigurationList = new ArrayList<>();
final ColocatedPolicyConfiguration haPolicy = new ColocatedPolicyConfiguration();
for (TransportConfiguration otherLiveNode : otherLiveNodes) {
configuration.addConnectorConfiguration(otherLiveNode.getName(), otherLiveNode);
transportConfigurationList.add(otherLiveNode.getName());
haPolicy.getExcludedConnectors().add(otherLiveNode.getName());
}
String[] input = new String[transportConfigurationList.size()];
transportConfigurationList.toArray(input);
configuration.addClusterConfiguration(basicClusterConnectionConfig(liveConnector.getName(), input));
haPolicy.setBackupPortOffset(100);
haPolicy.setBackupRequestRetries(-1);
haPolicy.setBackupRequestRetryInterval(500);
haPolicy.setMaxBackups(1);
haPolicy.setRequestBackup(true);
configuration.setHAPolicyConfiguration(haPolicy);
if (!replicated) {
SharedStoreMasterPolicyConfiguration ssmc = new SharedStoreMasterPolicyConfiguration();
SharedStoreSlavePolicyConfiguration sssc = new SharedStoreSlavePolicyConfiguration();
haPolicy.setLiveConfig(ssmc);
haPolicy.setBackupConfig(sssc);
if (scaleDown) {
sssc.setScaleDownConfiguration(new ScaleDownConfiguration());
}
} else {
ReplicatedPolicyConfiguration rpc = new ReplicatedPolicyConfiguration();
ReplicaPolicyConfiguration rpc2 = new ReplicaPolicyConfiguration();
haPolicy.setLiveConfig(rpc);
haPolicy.setBackupConfig(rpc2);
if (scaleDown) {
rpc2.setScaleDownConfiguration(new ScaleDownConfiguration());
}
}
return configuration;
}
use of org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration in project activemq-artemis by apache.
the class MultipleServerFailoverTestBase method setUp.
@Override
@Before
public void setUp() throws Exception {
super.setUp();
liveServers = new ArrayList<>();
backupServers = new ArrayList<>();
backupConfigs = new ArrayList<>();
liveConfigs = new ArrayList<>();
for (int i = 0; i < getLiveServerCount(); i++) {
HAPolicyConfiguration haPolicyConfiguration = null;
if (isSharedStore()) {
haPolicyConfiguration = new SharedStoreMasterPolicyConfiguration();
} else {
haPolicyConfiguration = new ReplicatedPolicyConfiguration();
if (getNodeGroupName() != null) {
((ReplicatedPolicyConfiguration) haPolicyConfiguration).setGroupName(getNodeGroupName() + "-" + i);
}
}
Configuration configuration = createDefaultConfig(isNetty()).clearAcceptorConfigurations().addAcceptorConfiguration(getAcceptorTransportConfiguration(true, i)).setHAPolicyConfiguration(haPolicyConfiguration);
if (!isSharedStore()) {
configuration.setBindingsDirectory(getBindingsDir(i, false));
configuration.setJournalDirectory(getJournalDir(i, false));
configuration.setPagingDirectory(getPageDir(i, false));
configuration.setLargeMessagesDirectory(getLargeMessagesDir(i, false));
} else {
// todo
}
TransportConfiguration livetc = getConnectorTransportConfiguration(true, i);
configuration.addConnectorConfiguration(livetc.getName(), livetc);
List<String> connectors = new ArrayList<>();
for (int j = 0; j < getLiveServerCount(); j++) {
if (j != i) {
TransportConfiguration staticTc = getConnectorTransportConfiguration(true, j);
configuration.getConnectorConfigurations().put(staticTc.getName(), staticTc);
connectors.add(staticTc.getName());
}
}
String[] input = new String[connectors.size()];
connectors.toArray(input);
configuration.addClusterConfiguration(basicClusterConnectionConfig(livetc.getName(), input));
liveConfigs.add(configuration);
ActiveMQServer server = createServer(true, configuration);
TestableServer activeMQServer = new SameProcessActiveMQServer(server);
activeMQServer.setIdentity("Live-" + i);
liveServers.add(activeMQServer);
}
for (int i = 0; i < getBackupServerCount(); i++) {
HAPolicyConfiguration haPolicyConfiguration = null;
if (isSharedStore()) {
haPolicyConfiguration = new SharedStoreSlavePolicyConfiguration();
} else {
haPolicyConfiguration = new ReplicaPolicyConfiguration();
if (getNodeGroupName() != null) {
((ReplicaPolicyConfiguration) haPolicyConfiguration).setGroupName(getNodeGroupName() + "-" + i);
}
}
Configuration configuration = createDefaultConfig(isNetty()).clearAcceptorConfigurations().addAcceptorConfiguration(getAcceptorTransportConfiguration(false, i)).setHAPolicyConfiguration(haPolicyConfiguration);
if (!isSharedStore()) {
configuration.setBindingsDirectory(getBindingsDir(i, true));
configuration.setJournalDirectory(getJournalDir(i, true));
configuration.setPagingDirectory(getPageDir(i, true));
configuration.setLargeMessagesDirectory(getLargeMessagesDir(i, true));
} else {
// todo
}
TransportConfiguration backuptc = getConnectorTransportConfiguration(false, i);
configuration.addConnectorConfiguration(backuptc.getName(), backuptc);
List<String> connectors = new ArrayList<>();
for (int j = 0; j < getBackupServerCount(); j++) {
TransportConfiguration staticTc = getConnectorTransportConfiguration(true, j);
configuration.addConnectorConfiguration(staticTc.getName(), staticTc);
connectors.add(staticTc.getName());
}
for (int j = 0; j < getBackupServerCount(); j++) {
if (j != i) {
TransportConfiguration staticTc = getConnectorTransportConfiguration(false, j);
configuration.getConnectorConfigurations().put(staticTc.getName(), staticTc);
connectors.add(staticTc.getName());
}
}
String[] input = new String[connectors.size()];
connectors.toArray(input);
configuration.addClusterConfiguration(basicClusterConnectionConfig(backuptc.getName(), input));
backupConfigs.add(configuration);
ActiveMQServer server = createServer(true, configuration);
TestableServer testableServer = new SameProcessActiveMQServer(server);
testableServer.setIdentity("Backup-" + i);
backupServers.add(testableServer);
}
}
Aggregations