Search in sources :

Example 61 with MessageIdList

use of org.apache.activemq.util.MessageIdList in project activemq-artemis by apache.

the class MessageReroutingTest method testMessageRerouting.

public void testMessageRerouting() throws Exception {
    MessageConsumer consumer = createConsumer("broker-D", dest);
    MessageIdList received = getConsumerMessages("broker-D", consumer);
    // wait for subs to propagate
    Thread.sleep(2000);
    // send/receive messages
    sendMessages("broker-A", dest, MESSAGE_COUNT);
    received.waitForMessagesToArrive(MESSAGE_COUNT);
    LOG.info("received " + received.getMessageCount() + " messages");
    assertEquals(MESSAGE_COUNT, received.getMessageCount());
    brokers.get("broker-B").broker.stop();
    brokers.get("broker-B").broker.waitUntilStopped();
    Thread.sleep(2000);
    // ensure send/receive still works
    sendMessages("broker-A", dest, MESSAGE_COUNT);
    received.waitForMessagesToArrive(MESSAGE_COUNT);
    LOG.info("received " + received.getMessageCount() + " messages");
    assertTrue("Didn't receive any more messages " + received.getMessageCount(), received.getMessageCount() > MESSAGE_COUNT);
}
Also used : MessageConsumer(javax.jms.MessageConsumer) MessageIdList(org.apache.activemq.util.MessageIdList)

Example 62 with MessageIdList

use of org.apache.activemq.util.MessageIdList in project activemq-artemis by apache.

the class PeerTransportTest method setUp.

@Override
protected void setUp() throws Exception {
    connections = new Connection[NUMBER_IN_CLUSTER];
    producers = new MessageProducer[NUMBER_IN_CLUSTER];
    messageIdList = new MessageIdList[NUMBER_IN_CLUSTER];
    ActiveMQDestination destination = createDestination();
    for (int i = 0; i < NUMBER_IN_CLUSTER; i++) {
        connections[i] = createConnection(i);
        connections[i].setClientID("ClusterTest" + i);
        connections[i].start();
        Session session = connections[i].createSession(false, Session.AUTO_ACKNOWLEDGE);
        producers[i] = session.createProducer(destination);
        producers[i].setDeliveryMode(deliveryMode);
        MessageConsumer consumer = createMessageConsumer(session, destination);
        messageIdList[i] = new MessageIdList();
        consumer.setMessageListener(messageIdList[i]);
    }
    LOG.info("Waiting for cluster to be fully connected");
    // Each connection should see that NUMBER_IN_CLUSTER consumers get
    // registered on the destination.
    ActiveMQDestination advisoryDest = AdvisorySupport.getConsumerAdvisoryTopic(destination);
    for (int i = 0; i < NUMBER_IN_CLUSTER; i++) {
        Session session = connections[i].createSession(false, Session.AUTO_ACKNOWLEDGE);
        MessageConsumer consumer = createMessageConsumer(session, advisoryDest);
        int j = 0;
        while (j < NUMBER_IN_CLUSTER) {
            ActiveMQMessage message = (ActiveMQMessage) consumer.receive(1000);
            if (message == null) {
                fail("Connection " + i + " saw " + j + " consumers, expected: " + NUMBER_IN_CLUSTER);
            }
            if (message.getDataStructure() != null && message.getDataStructure().getDataStructureType() == ConsumerInfo.DATA_STRUCTURE_TYPE) {
                j++;
            }
        }
        session.close();
    }
    LOG.info("Cluster is online.");
}
Also used : MessageConsumer(javax.jms.MessageConsumer) MessageIdList(org.apache.activemq.util.MessageIdList) ActiveMQDestination(org.apache.activemq.command.ActiveMQDestination) Session(javax.jms.Session) ActiveMQMessage(org.apache.activemq.command.ActiveMQMessage)

Example 63 with MessageIdList

use of org.apache.activemq.util.MessageIdList in project activemq-artemis by apache.

the class FanoutTest method assertMessagesReceived.

protected void assertMessagesReceived(String brokerURL) throws Exception {
    ActiveMQConnectionFactory consumerFactory = new ActiveMQConnectionFactory(brokerURL);
    Connection consumerConnection = consumerFactory.createConnection();
    consumerConnection.start();
    Session consumerSession = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    MessageConsumer consumer = consumerSession.createConsumer(consumerSession.createQueue("TEST"));
    MessageIdList listener = new MessageIdList();
    consumer.setMessageListener(listener);
    listener.waitForMessagesToArrive(messageCount);
    listener.assertMessagesReceived(messageCount);
    consumer.close();
    consumerSession.close();
    consumerConnection.close();
}
Also used : ActiveMQConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory) MessageConsumer(javax.jms.MessageConsumer) Connection(javax.jms.Connection) MessageIdList(org.apache.activemq.util.MessageIdList) Session(javax.jms.Session)

Aggregations

MessageIdList (org.apache.activemq.util.MessageIdList)63 MessageConsumer (javax.jms.MessageConsumer)58 Destination (javax.jms.Destination)34 ActiveMQDestination (org.apache.activemq.command.ActiveMQDestination)31 CountDownLatch (java.util.concurrent.CountDownLatch)8 Connection (javax.jms.Connection)6 VirtualDestination (org.apache.activemq.broker.region.virtual.VirtualDestination)5 Test (org.junit.Test)5 URI (java.net.URI)4 BrokerService (org.apache.activemq.broker.BrokerService)4 ActiveMQQueue (org.apache.activemq.command.ActiveMQQueue)4 NetworkConnector (org.apache.activemq.network.NetworkConnector)4 HashMap (java.util.HashMap)3 Session (javax.jms.Session)3 ActiveMQMessageConsumer (org.apache.activemq.ActiveMQMessageConsumer)3 TestSupport.getDestination (org.apache.activemq.TestSupport.getDestination)3 Destination (org.apache.activemq.broker.region.Destination)3 PolicyEntry (org.apache.activemq.broker.region.policy.PolicyEntry)3 PolicyMap (org.apache.activemq.broker.region.policy.PolicyMap)3 ActiveMQTopic (org.apache.activemq.command.ActiveMQTopic)3