Package org.apache.activemq.util

Examples of org.apache.activemq.util.ProducerThread


    }

    public void testLoad() throws Exception {
        Queue dest = session.createQueue("TEST");
        for (int i = 0; i < PRODUCER_COUNT; i++) {
            ProducerThread producer = new ProducerThread(session, dest);
            producer.setMessageCount(MESSAGE_COUNT);
            producer.start();
        }

        for (int i = 0; i < CONSUMER_COUNT; i++) {
            ConsumerThread consumer = new ConsumerThread(session, dest);
            consumer.setMessageCount(MESSAGE_COUNT);
View Full Code Here


    public void testFailover() throws Exception {
        ActiveMQConnectionFactory producerFactory = new ActiveMQConnectionFactory("failover:(tcp://localhost:61616,tcp://localhost:61626)?randomize=false");
        Connection producerConnection = producerFactory.createConnection();
        producerConnection.start();
        Session producerSession = producerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        ProducerThread producer = new ProducerThread(producerSession, producerSession.createQueue("ProxyTest"));
        producer.setSleep(10);
        producer.start();


        //ActiveMQConnectionFactory consumerFactory = new ActiveMQConnectionFactory("tcp://localhost:51618?wireFormat.cacheEnabled=false");
        ActiveMQConnectionFactory consumerFactory = new ActiveMQConnectionFactory("tcp://localhost:51618");
        Connection consumerConnection = consumerFactory.createConnection();
        consumerConnection.start();
        Session consumerSession = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        ConsumerThread consumer = new ConsumerThread(consumerSession, consumerSession.createQueue("ProxyTest"));
        consumer.start();

        Thread.sleep(10*1000);

        remoteBroker.stop();
        remoteBroker.waitUntilStopped();
        startRemoteBroker(false);

        producer.join();
        consumer.join();

        assertEquals(1000, consumer.getReceived());

    }
View Full Code Here

        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        connection.start();
        final long time = 1000;

        ProducerThread producer = new ProducerThread(session, destination) {
            @Override
            protected Message createMessage(int i) throws Exception {
                Message message = super.createMessage(i);
                message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, time);
                return message;
            }
        };

        producer.setMessageCount(200);
        producer.setDaemon(true);

        producer.start();

        Thread.sleep(5000);
    }
View Full Code Here

        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
        Connection conn = factory.createConnection();
        conn.start();
        Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
        final long time = 5000;
        final ProducerThread producer = new ProducerThread(sess, destination) {
            @Override
            protected Message createMessage(int i) throws Exception {
                Message message = super.createMessage(i);
                message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, time);
                return message;
            }
        };
        producer.setMessageCount(100);
        producer.start();

        MessageConsumer consumer = sess.createConsumer(destination);
        final CountDownLatch latch = new CountDownLatch(100);
        consumer.setMessageListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                latch.countDown();
            }
        });

        // wait for the producer to block, which should happen immediately, and also wait long
        // enough for the delay to elapse.  We should see no deliveries as the send should block
        // on the first message.
        Thread.sleep(10000l);

        assertEquals(100, latch.getCount());

        // Increase the store limit so the producer unblocks.  Everything should enqueue at this point.
        broker.getSystemUsage().getJobSchedulerUsage().setLimit(1024 * 1024 * 33);

        // Wait long enough that the messages are enqueued and the delivery delay has elapsed.
        Thread.sleep(10000l);

        // Make sure we sent all the messages we expected to send
        Wait.waitFor(new Wait.Condition() {
            @Override
            public boolean isSatisified() throws Exception {
                return producer.getSentCount() == producer.getMessageCount();
            }
        }, 20000l);

        assertEquals("Producer didn't send all messages", producer.getMessageCount(), producer.getSentCount());

        // Make sure we got all the messages we expected to get
        latch.await(20000l, TimeUnit.MILLISECONDS);

        assertEquals("Consumer did not receive all messages.", 0, latch.getCount());
View Full Code Here

                broker.getTransportConnectors().get(0).getConnectUri()).createConnection();
        connection.start();
        Session producerSess = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Session consumerSess = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        ProducerThread producer = new ProducerThread(producerSess, destination) {
            @Override
            protected Message createMessage(int i) throws Exception {
                return sess.createTextMessage(payload + "::" + i);
            }
        };
        producer.setMessageCount(messageCount);
        ConsumerThread consumer = new ConsumerThread(consumerSess, destination);
        consumer.setBreakOnNull(false);
        consumer.setMessageCount(messageCount);

        producer.start();
        producer.join();

        consumer.start();
        consumer.join();

        assertEquals("consumer got all produced messages", producer.getMessageCount(), consumer.getReceived());

        // verify cleanup
        assertTrue("gc worked", Wait.waitFor(new Wait.Condition() {
            @Override
            public boolean isSatisified() throws Exception {
View Full Code Here

        factory.setOptimizeAcknowledge(true);
        Connection conn = factory.createConnection();
        conn.start();
        Session sess = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
        Queue queue = sess.createQueue("STORE");
        final ProducerThread producer = new ProducerThread(sess, queue) {
            @Override
            protected Message createMessage(int i) throws Exception {
                return sess.createTextMessage(payload + "::" + i);
            }
        };
        producer.setMessageCount(2000);
        producer.start();
        producer.join();

        Thread.sleep(1000);

        // assert we didn't break high watermark (70%) usage
        final Destination dest = broker.getDestination((ActiveMQQueue) queue);
View Full Code Here

        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost?jms.prefetchPolicy.all=10");
        factory.setOptimizeAcknowledge(true);
        Connection conn = factory.createConnection();
        conn.start();
        Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
        final ProducerThread producer = new ProducerThread(sess, sess.createQueue("STORE.1")) {
            @Override
            protected Message createMessage(int i) throws Exception {
                return sess.createTextMessage(payload + "::" + i);
            }
        };
        producer.setMessageCount(1000);

        final ProducerThread producer2 = new ProducerThread(sess, sess.createQueue("STORE.2")) {
            @Override
            protected Message createMessage(int i) throws Exception {
                return sess.createTextMessage(payload + "::" + i);
            }
        };
        producer2.setMessageCount(1000);

        ConsumerThread consumer = new ConsumerThread(sess, sess.createQueue("STORE.1"));
        consumer.setBreakOnNull(false);
        consumer.setMessageCount(1000);

        producer.start();
        producer.join();

        producer2.start();

        Thread.sleep(300);

        consumer.start();

        consumer.join();
        producer2.join();

        assertEquals("consumer got all produced messages", producer.getMessageCount(), consumer.getReceived());
    }
View Full Code Here

        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
        Connection conn = factory.createConnection();
        conn.start();
        Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
        final long time = 5000;
        final ProducerThread producer = new ProducerThread(sess, destination) {
            @Override
            protected Message createMessage(int i) throws Exception {
                Message message = super.createMessage(i);
                message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, time);
                return message;
           
        };
        producer.setMessageCount(100);
        producer.start();
       
        MessageConsumer consumer = sess.createConsumer(destination);
        final CountDownLatch latch = new CountDownLatch(100);
        consumer.setMessageListener(new MessageListener() {
            public void onMessage(Message message) {
                latch.countDown();
            }
        });

        // wait for the producer to block, which should happen immediately, and also wait long
        // enough for the delay to elapse.  We should see no deliveries as the send should block
        // on the first message.
        Thread.sleep(10000l);
       
        assertEquals(100, latch.getCount());

        // Increase the store limit so the producer unblocks.  Everything should enqueue at this point.
        broker.getSystemUsage().getJobSchedulerUsage().setLimit(1024 * 1024 * 33);

        // Wait long enough that the messages are enqueued and the delivery delay has elapsed.
        Thread.sleep(10000l);

        // Make sure we sent all the messages we expected to send
        Wait.waitFor(new Wait.Condition() {
            public boolean isSatisified() throws Exception {
                return producer.getSentCount() == producer.getMessageCount();
            }
        }, 20000l);
       
        assertEquals("Producer didn't send all messages", producer.getMessageCount(), producer.getSentCount());
       
        // Make sure we got all the messages we expected to get
        latch.await(20000l, TimeUnit.MILLISECONDS);
       
        assertEquals("Consumer did not receive all messages.", 0, latch.getCount());
View Full Code Here

    }

    public void testLoad() throws Exception {
        Queue dest = session.createQueue("TEST");
        for (int i = 0; i < PRODUCER_COUNT; i++) {
            ProducerThread producer = new ProducerThread(session, dest);
            producer.setMessageCount(MESSAGE_COUNT);
            producer.start();
        }

        for (int i = 0; i < CONSUMER_COUNT; i++) {
            ConsumerThread consumer = new ConsumerThread(session, dest);
            consumer.setMessageCount(MESSAGE_COUNT);
View Full Code Here

        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
        Connection conn = factory.createConnection();
        conn.start();
        Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination dest = sess.createQueue(this.getClass().getName());
        final ProducerThread producer = new ProducerThread(sess, dest) {
            @Override
            protected Message createMessage(int i) throws Exception {
                Message message = super.createMessage(i);
                message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, WAIT_TIME_MILLS / 2);
                return message;
            }
        };
        producer.setMessageCount(100);
        producer.start();

        assertEquals(7 * 1024, broker.getAdminView().getJobSchedulerStoreLimit());

        // wait for the producer to block
        Thread.sleep(WAIT_TIME_MILLS / 2);

        assertTrue(broker.getAdminView().getJobSchedulerStorePercentUsage() > 100);

        broker.getAdminView().setJobSchedulerStoreLimit(1024 * 1024 * 33);

        Thread.sleep(WAIT_TIME_MILLS);

        Wait.waitFor(new Wait.Condition() {
            @Override
            public boolean isSatisified() throws Exception {
                return producer.getSentCount() == producer.getMessageCount();
            }
        }, WAIT_TIME_MILLS * 2);

        assertEquals("Producer didn't send all messages", producer.getMessageCount(), producer.getSentCount());

        LOG.info("Final scheduler usage: {}", broker.getAdminView().getJobSchedulerStorePercentUsage());

        assertTrue(broker.getAdminView().getJobSchedulerStorePercentUsage() < 100);
    }
View Full Code Here

TOP

Related Classes of org.apache.activemq.util.ProducerThread

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.