use of org.apache.activemq.broker.TransportConnector in project activemq-artemis by apache.
the class NetworkLoadTest method createBroker.
protected BrokerService createBroker(int brokerId) throws Exception {
BrokerService broker = new BrokerService();
broker.setBrokerName("broker-" + brokerId);
broker.setPersistent(false);
broker.setUseJmx(true);
broker.getManagementContext().setCreateConnector(false);
final SystemUsage memoryManager = new SystemUsage();
// 50 MB
memoryManager.getMemoryUsage().setLimit(1024 * 1024 * 50);
broker.setSystemUsage(memoryManager);
final List<PolicyEntry> policyEntries = new ArrayList<>();
final PolicyEntry entry = new PolicyEntry();
entry.setQueue(">");
// Set to 1 MB
entry.setMemoryLimit(1024 * 1024 * 1);
entry.setPendingSubscriberPolicy(new VMPendingSubscriberMessageStoragePolicy());
entry.setPendingQueuePolicy(new VMPendingQueueMessageStoragePolicy());
policyEntries.add(entry);
// This is to turn of the default behavior of storing topic messages for retroactive consumption
final PolicyEntry topicPolicyEntry = new PolicyEntry();
topicPolicyEntry.setTopic(">");
final NoSubscriptionRecoveryPolicy noSubscriptionRecoveryPolicy = new NoSubscriptionRecoveryPolicy();
topicPolicyEntry.setSubscriptionRecoveryPolicy(noSubscriptionRecoveryPolicy);
final PolicyMap policyMap = new PolicyMap();
policyMap.setPolicyEntries(policyEntries);
broker.setDestinationPolicy(policyMap);
TransportConnector transportConnector = new TransportConnector();
transportConnector.setUri(new URI("tcp://localhost:" + (60000 + brokerId)));
transportConnector.setDiscoveryUri(new URI("multicast://default?group=" + groupId));
broker.addConnector(transportConnector);
DiscoveryNetworkConnector networkConnector = new DiscoveryNetworkConnector();
networkConnector.setUri(new URI("multicast://default?group=" + groupId));
networkConnector.setBridgeTempDestinations(true);
networkConnector.setPrefetchSize(1);
broker.addNetworkConnector(networkConnector);
return broker;
}
use of org.apache.activemq.broker.TransportConnector in project activemq-artemis by apache.
the class DiscoveryTransportBrokerTest method createConnector.
@Override
protected TransportConnector createConnector() throws Exception, IOException, URISyntaxException {
TransportConnector x = super.createConnector();
x.setDiscoveryUri(new URI(getDiscoveryUri()));
return x;
}
use of org.apache.activemq.broker.TransportConnector in project activemq-artemis by apache.
the class DiscoveryTransportBrokerTest method testPublisherFailsOver.
public void testPublisherFailsOver() throws Exception {
ActiveMQDestination destination = new ActiveMQQueue("TEST");
int deliveryMode = DeliveryMode.NON_PERSISTENT;
// Start a normal consumer on the local broker
StubConnection connection1 = createConnection();
ConnectionInfo connectionInfo1 = createConnectionInfo();
SessionInfo sessionInfo1 = createSessionInfo(connectionInfo1);
ConsumerInfo consumerInfo1 = createConsumerInfo(sessionInfo1, destination);
connection1.send(connectionInfo1);
connection1.send(sessionInfo1);
connection1.request(consumerInfo1);
// Start a normal consumer on a remote broker
StubConnection connection2 = createRemoteConnection();
ConnectionInfo connectionInfo2 = createConnectionInfo();
SessionInfo sessionInfo2 = createSessionInfo(connectionInfo2);
ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination);
connection2.send(connectionInfo2);
connection2.send(sessionInfo2);
connection2.request(consumerInfo2);
// Start a failover publisher.
StubConnection connection3 = createFailoverConnection();
ConnectionInfo connectionInfo3 = createConnectionInfo();
SessionInfo sessionInfo3 = createSessionInfo(connectionInfo3);
ProducerInfo producerInfo3 = createProducerInfo(sessionInfo3);
connection3.send(connectionInfo3);
connection3.send(sessionInfo3);
connection3.send(producerInfo3);
// Send the message using the fail over publisher.
connection3.request(createMessage(producerInfo3, destination, deliveryMode));
// The message will be sent to one of the brokers.
FailoverTransport ft = connection3.getTransport().narrow(FailoverTransport.class);
// See which broker we were connected to.
StubConnection connectionA;
StubConnection connectionB;
TransportConnector serverA;
if (connector.getServer().getConnectURI().getPort() == ft.getConnectedTransportURI().getPort()) {
connectionA = connection1;
connectionB = connection2;
serverA = connector;
} else {
connectionA = connection2;
connectionB = connection1;
serverA = remoteConnector;
}
assertNotNull(receiveMessage(connectionA));
assertNoMessagesLeft(connectionB);
// Dispose the server so that it fails over to the other server.
LOG.info("Disconnecting active server");
serverA.stop();
LOG.info("Sending request that should failover");
connection3.request(createMessage(producerInfo3, destination, deliveryMode));
assertNotNull(receiveMessage(connectionB));
assertNoMessagesLeft(connectionA);
}
use of org.apache.activemq.broker.TransportConnector in project activemq-artemis by apache.
the class DiscoveryTransportBrokerTest method createRemoteConnector.
@Override
protected TransportConnector createRemoteConnector() throws Exception, IOException, URISyntaxException {
TransportConnector x = super.createRemoteConnector();
x.setDiscoveryUri(new URI(getDiscoveryUri()));
return x;
}
use of org.apache.activemq.broker.TransportConnector in project activemq-artemis by apache.
the class DiscoveryUriTest method createBroker.
@Override
protected BrokerService createBroker() throws Exception {
bindAddress = "tcp://localhost:0";
BrokerService answer = new BrokerService();
answer.setPersistent(isPersistent());
TransportConnector connector = new TransportConnector();
connector.setUri(new URI(bindAddress));
connector.setDiscoveryUri(new URI("multicast://default?group=test"));
answer.addConnector(connector);
return answer;
}
Aggregations