You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Nick Chistyakov <ch...@gmail.com> on 2009/12/13 19:25:09 UTC

exception in load-testing using DataSet component

Hello to all,

I found several examples that are using DataSet (SimpleDataSet) for load
tests.
So I wrote that simple test:


package com.etna.sandbox;

import javax.jms.ConnectionFactory;
import javax.naming.Context;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.dataset.SimpleDataSet;
import org.apache.camel.component.jms.JmsComponent;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.apache.camel.util.jndi.JndiContext;
import org.junit.Test;

/**
 *
 * @author nick
 */
public class PerformanceTest extends CamelTestSupport {

    private static int MESSAGE_COUNT            = 10000;

    public static final String BROKER_URI       = "tcp://localhost:61616";

    private static final String MOCK_OUT        = "mock:out";
    private static final String INPUT_QUEUE     = "activemq:queue:dummy-in";
    private static final String OUTPUT_QUEUE    =
"activemq:queue:dummy-out";
    private static final String DATASET_NAME    = "foo";
    private static final String DATASET_URI     = "dataset:" + DATASET_NAME;



    private SimpleDataSet dataSet = new SimpleDataSet(MESSAGE_COUNT);

    @Override
    protected Context createJndiContext() throws Exception {
        JndiContext jndiContext = new JndiContext();

        ConnectionFactory connectionFactory = new
ActiveMQConnectionFactory(BROKER_URI);
        jndiContext.bind("jms",
JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));

        dataSet.setReportCount(100);
        jndiContext.bind(DATASET_NAME, dataSet);

        return jndiContext;
    }

    @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            public void configure() throws Exception {
                from(DATASET_URI ).to(INPUT_QUEUE);
                from(INPUT_QUEUE ).to(OUTPUT_QUEUE);
                from(OUTPUT_QUEUE).to(DATASET_URI);
            }
        };
    }

    @Test
    public void testPerformance() throws Exception {
        assertMockEndpointsSatisfied();
    }
}




But I'm getting an exception if MESSAGE_COUNT is a big number (> 2000 for
example)
The test output is bellow:





[                          main] DefaultCamelContext            INFO  Apache
Camel 2.2-SNAPSHOT (CamelContext:camel-1) is starting
[                          main] DefaultCamelContext            INFO  JMX
enabled. Using DefaultManagedLifecycleStrategy.
[                          main] dataset://foo                  INFO  Start:
Endpoint[dataset://foo] expecting 10000 messages
[                 ActiveMQ Task] FailoverTransport              INFO
 Successfully connected to tcp://localhost:61616
[                 ActiveMQ Task] FailoverTransport              INFO
 Successfully connected to tcp://localhost:61616
[                          main] DefaultCamelContext            INFO  Apache
Camel 2.2-SNAPSHOT (CamelContext:camel-1) started
[                          main] MockEndpoint                   INFO
 Asserting: Endpoint[dataset://foo] is satisfied
[                 ActiveMQ Task] FailoverTransport              INFO
 Successfully connected to tcp://localhost:61616
[                 ActiveMQ Task] FailoverTransport              INFO
 Successfully connected to tcp://localhost:61616
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
100 messages so far. Last group took: 821 millis which is: 121.803 messages
per second. average: 121.803
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 100 messages so far. Last group took: 748 millis which is: 133.69
messages per second. average: 133.69
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 200 messages so far. Last group took: 805 millis which is:
124.224 messages per second. average: 128.783
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
200 messages so far. Last group took: 824 millis which is: 121.359 messages
per second. average: 121.581
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 300 messages so far. Last group took: 795 millis which is:
125.786 messages per second. average: 127.768
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
300 messages so far. Last group took: 795 millis which is: 125.786 messages
per second. average: 122.951
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
400 messages so far. Last group took: 797 millis which is: 125.471 messages
per second. average: 123.571
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 400 messages so far. Last group took: 798 millis which is:
125.313 messages per second. average: 127.146
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 500 messages so far. Last group took: 856 millis which is:
116.822 messages per second. average: 124.938
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
500 messages so far. Last group took: 857 millis which is: 116.686 messages
per second. average: 122.13
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 600 messages so far. Last group took: 872 millis which is:
114.679 messages per second. average: 123.102
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
600 messages so far. Last group took: 872 millis which is: 114.679 messages
per second. average: 120.822
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
700 messages so far. Last group took: 1035 millis which is: 96.618 messages
per second. average: 116.647
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 700 messages so far. Last group took: 1054 millis which is:
94.877 messages per second. average: 118.084
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 800 messages so far. Last group took: 848 millis which is:
117.925 messages per second. average: 118.064
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
800 messages so far. Last group took: 867 millis which is: 115.34 messages
per second. average: 116.482
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 900 messages so far. Last group took: 772 millis which is:
129.534 messages per second. average: 119.237
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
900 messages so far. Last group took: 773 millis which is: 129.366 messages
per second. average: 117.786
[aultMessageListenerContainer-1] dataset://foo                  INFO
 Received: 1000 messages so far. Last group took: 885 millis which is:
112.994 messages per second. average: 118.582
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
1000 messages so far. Last group took: 884 millis which is: 113.122 messages
per second. average: 117.302
[                          main] DefaultCamelContext            INFO  Apache
Camel 2.2-SNAPSHOT (CamelContext:camel-1) is stopping
[aultMessageListenerContainer-1] EndpointMessageListener        ERROR
java.util.concurrent.RejectedExecutionException
org.apache.camel.RuntimeCamelException:
java.util.concurrent.RejectedExecutionException
        at
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1039)
        at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
        at java.lang.Thread.run(Thread.java:637)
Caused by: java.util.concurrent.RejectedExecutionException
        at
org.apache.camel.processor.RedeliveryErrorHandler.isRunAllowed(RedeliveryErrorHandler.java:195)
        at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:100)
        at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91)
        at
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
        at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206)
        at
org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
        at
org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
        at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
        ... 9 more
[aultMessageListenerContainer-1] efaultMessageListenerContainer WARN
 Execution of JMS message listener failed
org.apache.camel.RuntimeCamelException:
java.util.concurrent.RejectedExecutionException
        at
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1039)
        at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
        at java.lang.Thread.run(Thread.java:637)
Caused by: java.util.concurrent.RejectedExecutionException
        at
org.apache.camel.processor.RedeliveryErrorHandler.isRunAllowed(RedeliveryErrorHandler.java:195)
        at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:100)
        at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91)
        at
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
        at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206)
        at
org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
        at
org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
        at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
        ... 9 more
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
1100 messages so far. Last group took: 595 millis which is: 168.067 messages
per second. average: 120.614
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
1200 messages so far. Last group took: 331 millis which is: 302.115 messages
per second. average: 126.971
[mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
1300 messages so far. Last group took: 334 millis which is: 299.401 messages
per second. average: 132.856
[                          main] dataset://foo                  INFO  Stop:
Endpoint[dataset://foo]
[                          main] dataset://foo                  INFO  Stop:
Endpoint[dataset://foo]
[                          main] DefaultInflightRepository      INFO
 Shutting down with no inflight exchanges.
[                          main] DefaultCamelContext            INFO  Apache
Camel 2.2-SNAPSHOT (CamelContext:camel-1) stopped


So the question is what I do wrong?

Best regards,
Nick

Re: exception in load-testing using DataSet component

Posted by Nick Chistyakov <ch...@gmail.com>.
Hello Willem and Clause!

Thank you for response.
I added:

mockEndpoint.await(1, TimeUnit.MINUTES);

and the test now runs fine :))

Best of the best regards,
Nick

On Mon, Dec 14, 2009 at 11:11 AM, Claus Ibsen <cl...@gmail.com> wrote:

> On Mon, Dec 14, 2009 at 9:09 AM, Willem Jiang <wi...@gmail.com>
> wrote:
> > Hi,
> >
> > It looks like the exception is thrown when the camel context is stopping
> and
> > your dataset is still sending the data.
> >
> > When you call assertMockEndpointsSatisfied(), camel will try to wait for
> the
> > message for about 30 second.
> >
> > If send a large amount of message, you need to add some sleep time in
> your
> > testPerformance() method, to let camel finish the DataSet sending.
> >
>
> There is also a method on mock endpoint to set the "sleep time".
>
>
> > Willem
> >
> >
> > Nick Chistyakov wrote:
> >>
> >> Hello to all,
> >>
> >> I found several examples that are using DataSet (SimpleDataSet) for load
> >> tests.
> >> So I wrote that simple test:
> >>
> >>
> >> package com.etna.sandbox;
> >>
> >> import javax.jms.ConnectionFactory;
> >> import javax.naming.Context;
> >> import org.apache.activemq.ActiveMQConnectionFactory;
> >> import org.apache.camel.builder.RouteBuilder;
> >> import org.apache.camel.component.dataset.SimpleDataSet;
> >> import org.apache.camel.component.jms.JmsComponent;
> >> import org.apache.camel.test.junit4.CamelTestSupport;
> >> import org.apache.camel.util.jndi.JndiContext;
> >> import org.junit.Test;
> >>
> >> /**
> >>  *
> >>  * @author nick
> >>  */
> >> public class PerformanceTest extends CamelTestSupport {
> >>
> >>    private static int MESSAGE_COUNT            = 10000;
> >>
> >>    public static final String BROKER_URI       =
> "tcp://localhost:61616";
> >>
> >>    private static final String MOCK_OUT        = "mock:out";
> >>    private static final String INPUT_QUEUE     =
> >> "activemq:queue:dummy-in";
> >>    private static final String OUTPUT_QUEUE    =
> >> "activemq:queue:dummy-out";
> >>    private static final String DATASET_NAME    = "foo";
> >>    private static final String DATASET_URI     = "dataset:" +
> >> DATASET_NAME;
> >>
> >>
> >>
> >>    private SimpleDataSet dataSet = new SimpleDataSet(MESSAGE_COUNT);
> >>
> >>    @Override
> >>    protected Context createJndiContext() throws Exception {
> >>        JndiContext jndiContext = new JndiContext();
> >>
> >>        ConnectionFactory connectionFactory = new
> >> ActiveMQConnectionFactory(BROKER_URI);
> >>        jndiContext.bind("jms",
> >> JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
> >>
> >>        dataSet.setReportCount(100);
> >>        jndiContext.bind(DATASET_NAME, dataSet);
> >>
> >>        return jndiContext;
> >>    }
> >>
> >>    @Override
> >>    protected RouteBuilder createRouteBuilder() throws Exception {
> >>        return new RouteBuilder() {
> >>            public void configure() throws Exception {
> >>                from(DATASET_URI ).to(INPUT_QUEUE);
> >>                from(INPUT_QUEUE ).to(OUTPUT_QUEUE);
> >>                from(OUTPUT_QUEUE).to(DATASET_URI);
> >>            }
> >>        };
> >>    }
> >>
> >>    @Test
> >>    public void testPerformance() throws Exception {
> >>        assertMockEndpointsSatisfied();
> >>    }
> >> }
> >>
> >>
> >>
> >>
> >> But I'm getting an exception if MESSAGE_COUNT is a big number (> 2000
> for
> >> example)
> >> The test output is bellow:
> >>
> >>
> >>
> >>
> >>
> >> [                          main] DefaultCamelContext            INFO
> >>  Apache
> >> Camel 2.2-SNAPSHOT (CamelContext:camel-1) is starting
> >> [                          main] DefaultCamelContext            INFO
>  JMX
> >> enabled. Using DefaultManagedLifecycleStrategy.
> >> [                          main] dataset://foo                  INFO
> >>  Start:
> >> Endpoint[dataset://foo] expecting 10000 messages
> >> [                 ActiveMQ Task] FailoverTransport              INFO
> >>  Successfully connected to tcp://localhost:61616
> >> [                 ActiveMQ Task] FailoverTransport              INFO
> >>  Successfully connected to tcp://localhost:61616
> >> [                          main] DefaultCamelContext            INFO
> >>  Apache
> >> Camel 2.2-SNAPSHOT (CamelContext:camel-1) started
> >> [                          main] MockEndpoint                   INFO
> >>  Asserting: Endpoint[dataset://foo] is satisfied
> >> [                 ActiveMQ Task] FailoverTransport              INFO
> >>  Successfully connected to tcp://localhost:61616
> >> [                 ActiveMQ Task] FailoverTransport              INFO
> >>  Successfully connected to tcp://localhost:61616
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 100 messages so far. Last group took: 821 millis which is: 121.803
> >> messages
> >> per second. average: 121.803
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 100 messages so far. Last group took: 748 millis which is:
> >> 133.69
> >> messages per second. average: 133.69
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 200 messages so far. Last group took: 805 millis which is:
> >> 124.224 messages per second. average: 128.783
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 200 messages so far. Last group took: 824 millis which is: 121.359
> >> messages
> >> per second. average: 121.581
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 300 messages so far. Last group took: 795 millis which is:
> >> 125.786 messages per second. average: 127.768
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 300 messages so far. Last group took: 795 millis which is: 125.786
> >> messages
> >> per second. average: 122.951
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 400 messages so far. Last group took: 797 millis which is: 125.471
> >> messages
> >> per second. average: 123.571
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 400 messages so far. Last group took: 798 millis which is:
> >> 125.313 messages per second. average: 127.146
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 500 messages so far. Last group took: 856 millis which is:
> >> 116.822 messages per second. average: 124.938
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 500 messages so far. Last group took: 857 millis which is: 116.686
> >> messages
> >> per second. average: 122.13
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 600 messages so far. Last group took: 872 millis which is:
> >> 114.679 messages per second. average: 123.102
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 600 messages so far. Last group took: 872 millis which is: 114.679
> >> messages
> >> per second. average: 120.822
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 700 messages so far. Last group took: 1035 millis which is: 96.618
> >> messages
> >> per second. average: 116.647
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 700 messages so far. Last group took: 1054 millis which is:
> >> 94.877 messages per second. average: 118.084
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 800 messages so far. Last group took: 848 millis which is:
> >> 117.925 messages per second. average: 118.064
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 800 messages so far. Last group took: 867 millis which is: 115.34
> messages
> >> per second. average: 116.482
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 900 messages so far. Last group took: 772 millis which is:
> >> 129.534 messages per second. average: 119.237
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 900 messages so far. Last group took: 773 millis which is: 129.366
> >> messages
> >> per second. average: 117.786
> >> [aultMessageListenerContainer-1] dataset://foo                  INFO
> >>  Received: 1000 messages so far. Last group took: 885 millis which is:
> >> 112.994 messages per second. average: 118.582
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 1000 messages so far. Last group took: 884 millis which is: 113.122
> >> messages
> >> per second. average: 117.302
> >> [                          main] DefaultCamelContext            INFO
> >>  Apache
> >> Camel 2.2-SNAPSHOT (CamelContext:camel-1) is stopping
> >> [aultMessageListenerContainer-1] EndpointMessageListener        ERROR
> >> java.util.concurrent.RejectedExecutionException
> >> org.apache.camel.RuntimeCamelException:
> >> java.util.concurrent.RejectedExecutionException
> >>        at
> >>
> >>
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1039)
> >>        at
> >>
> >>
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
> >>        at
> >>
> >>
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
> >>        at
> >>
> >>
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
> >>        at
> >>
> >>
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
> >>        at java.lang.Thread.run(Thread.java:637)
> >> Caused by: java.util.concurrent.RejectedExecutionException
> >>        at
> >>
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.isRunAllowed(RedeliveryErrorHandler.java:195)
> >>        at
> >>
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:100)
> >>        at
> >>
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91)
> >>        at
> >>
> >>
> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
> >>        at
> >>
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206)
> >>        at
> >>
> >>
> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> >>        at
> >>
> >>
> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> >>        at
> >>
> >>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
> >>        at
> >>
> >>
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
> >>        ... 9 more
> >> [aultMessageListenerContainer-1] efaultMessageListenerContainer WARN
> >>  Execution of JMS message listener failed
> >> org.apache.camel.RuntimeCamelException:
> >> java.util.concurrent.RejectedExecutionException
> >>        at
> >>
> >>
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1039)
> >>        at
> >>
> >>
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
> >>        at
> >>
> >>
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
> >>        at
> >>
> >>
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
> >>        at
> >>
> >>
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
> >>        at
> >>
> >>
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
> >>        at java.lang.Thread.run(Thread.java:637)
> >> Caused by: java.util.concurrent.RejectedExecutionException
> >>        at
> >>
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.isRunAllowed(RedeliveryErrorHandler.java:195)
> >>        at
> >>
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:100)
> >>        at
> >>
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91)
> >>        at
> >>
> >>
> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
> >>        at
> >>
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206)
> >>        at
> >>
> >>
> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> >>        at
> >>
> >>
> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> >>        at
> >>
> >>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
> >>        at
> >>
> >>
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
> >>        ... 9 more
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 1100 messages so far. Last group took: 595 millis which is: 168.067
> >> messages
> >> per second. average: 120.614
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 1200 messages so far. Last group took: 331 millis which is: 302.115
> >> messages
> >> per second. average: 126.971
> >> [mel thread 0: DataSetComponent] dataset://foo                  INFO
> >>  Sent:
> >> 1300 messages so far. Last group took: 334 millis which is: 299.401
> >> messages
> >> per second. average: 132.856
> >> [                          main] dataset://foo                  INFO
> >>  Stop:
> >> Endpoint[dataset://foo]
> >> [                          main] dataset://foo                  INFO
> >>  Stop:
> >> Endpoint[dataset://foo]
> >> [                          main] DefaultInflightRepository      INFO
> >>  Shutting down with no inflight exchanges.
> >> [                          main] DefaultCamelContext            INFO
> >>  Apache
> >> Camel 2.2-SNAPSHOT (CamelContext:camel-1) stopped
> >>
> >>
> >> So the question is what I do wrong?
> >>
> >> Best regards,
> >> Nick
> >>
> >
> >
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>

Re: exception in load-testing using DataSet component

Posted by Claus Ibsen <cl...@gmail.com>.
On Mon, Dec 14, 2009 at 9:09 AM, Willem Jiang <wi...@gmail.com> wrote:
> Hi,
>
> It looks like the exception is thrown when the camel context is stopping and
> your dataset is still sending the data.
>
> When you call assertMockEndpointsSatisfied(), camel will try to wait for the
> message for about 30 second.
>
> If send a large amount of message, you need to add some sleep time in your
> testPerformance() method, to let camel finish the DataSet sending.
>

There is also a method on mock endpoint to set the "sleep time".


> Willem
>
>
> Nick Chistyakov wrote:
>>
>> Hello to all,
>>
>> I found several examples that are using DataSet (SimpleDataSet) for load
>> tests.
>> So I wrote that simple test:
>>
>>
>> package com.etna.sandbox;
>>
>> import javax.jms.ConnectionFactory;
>> import javax.naming.Context;
>> import org.apache.activemq.ActiveMQConnectionFactory;
>> import org.apache.camel.builder.RouteBuilder;
>> import org.apache.camel.component.dataset.SimpleDataSet;
>> import org.apache.camel.component.jms.JmsComponent;
>> import org.apache.camel.test.junit4.CamelTestSupport;
>> import org.apache.camel.util.jndi.JndiContext;
>> import org.junit.Test;
>>
>> /**
>>  *
>>  * @author nick
>>  */
>> public class PerformanceTest extends CamelTestSupport {
>>
>>    private static int MESSAGE_COUNT            = 10000;
>>
>>    public static final String BROKER_URI       = "tcp://localhost:61616";
>>
>>    private static final String MOCK_OUT        = "mock:out";
>>    private static final String INPUT_QUEUE     =
>> "activemq:queue:dummy-in";
>>    private static final String OUTPUT_QUEUE    =
>> "activemq:queue:dummy-out";
>>    private static final String DATASET_NAME    = "foo";
>>    private static final String DATASET_URI     = "dataset:" +
>> DATASET_NAME;
>>
>>
>>
>>    private SimpleDataSet dataSet = new SimpleDataSet(MESSAGE_COUNT);
>>
>>    @Override
>>    protected Context createJndiContext() throws Exception {
>>        JndiContext jndiContext = new JndiContext();
>>
>>        ConnectionFactory connectionFactory = new
>> ActiveMQConnectionFactory(BROKER_URI);
>>        jndiContext.bind("jms",
>> JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
>>
>>        dataSet.setReportCount(100);
>>        jndiContext.bind(DATASET_NAME, dataSet);
>>
>>        return jndiContext;
>>    }
>>
>>    @Override
>>    protected RouteBuilder createRouteBuilder() throws Exception {
>>        return new RouteBuilder() {
>>            public void configure() throws Exception {
>>                from(DATASET_URI ).to(INPUT_QUEUE);
>>                from(INPUT_QUEUE ).to(OUTPUT_QUEUE);
>>                from(OUTPUT_QUEUE).to(DATASET_URI);
>>            }
>>        };
>>    }
>>
>>    @Test
>>    public void testPerformance() throws Exception {
>>        assertMockEndpointsSatisfied();
>>    }
>> }
>>
>>
>>
>>
>> But I'm getting an exception if MESSAGE_COUNT is a big number (> 2000 for
>> example)
>> The test output is bellow:
>>
>>
>>
>>
>>
>> [                          main] DefaultCamelContext            INFO
>>  Apache
>> Camel 2.2-SNAPSHOT (CamelContext:camel-1) is starting
>> [                          main] DefaultCamelContext            INFO  JMX
>> enabled. Using DefaultManagedLifecycleStrategy.
>> [                          main] dataset://foo                  INFO
>>  Start:
>> Endpoint[dataset://foo] expecting 10000 messages
>> [                 ActiveMQ Task] FailoverTransport              INFO
>>  Successfully connected to tcp://localhost:61616
>> [                 ActiveMQ Task] FailoverTransport              INFO
>>  Successfully connected to tcp://localhost:61616
>> [                          main] DefaultCamelContext            INFO
>>  Apache
>> Camel 2.2-SNAPSHOT (CamelContext:camel-1) started
>> [                          main] MockEndpoint                   INFO
>>  Asserting: Endpoint[dataset://foo] is satisfied
>> [                 ActiveMQ Task] FailoverTransport              INFO
>>  Successfully connected to tcp://localhost:61616
>> [                 ActiveMQ Task] FailoverTransport              INFO
>>  Successfully connected to tcp://localhost:61616
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 100 messages so far. Last group took: 821 millis which is: 121.803
>> messages
>> per second. average: 121.803
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 100 messages so far. Last group took: 748 millis which is:
>> 133.69
>> messages per second. average: 133.69
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 200 messages so far. Last group took: 805 millis which is:
>> 124.224 messages per second. average: 128.783
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 200 messages so far. Last group took: 824 millis which is: 121.359
>> messages
>> per second. average: 121.581
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 300 messages so far. Last group took: 795 millis which is:
>> 125.786 messages per second. average: 127.768
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 300 messages so far. Last group took: 795 millis which is: 125.786
>> messages
>> per second. average: 122.951
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 400 messages so far. Last group took: 797 millis which is: 125.471
>> messages
>> per second. average: 123.571
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 400 messages so far. Last group took: 798 millis which is:
>> 125.313 messages per second. average: 127.146
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 500 messages so far. Last group took: 856 millis which is:
>> 116.822 messages per second. average: 124.938
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 500 messages so far. Last group took: 857 millis which is: 116.686
>> messages
>> per second. average: 122.13
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 600 messages so far. Last group took: 872 millis which is:
>> 114.679 messages per second. average: 123.102
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 600 messages so far. Last group took: 872 millis which is: 114.679
>> messages
>> per second. average: 120.822
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 700 messages so far. Last group took: 1035 millis which is: 96.618
>> messages
>> per second. average: 116.647
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 700 messages so far. Last group took: 1054 millis which is:
>> 94.877 messages per second. average: 118.084
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 800 messages so far. Last group took: 848 millis which is:
>> 117.925 messages per second. average: 118.064
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 800 messages so far. Last group took: 867 millis which is: 115.34 messages
>> per second. average: 116.482
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 900 messages so far. Last group took: 772 millis which is:
>> 129.534 messages per second. average: 119.237
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 900 messages so far. Last group took: 773 millis which is: 129.366
>> messages
>> per second. average: 117.786
>> [aultMessageListenerContainer-1] dataset://foo                  INFO
>>  Received: 1000 messages so far. Last group took: 885 millis which is:
>> 112.994 messages per second. average: 118.582
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 1000 messages so far. Last group took: 884 millis which is: 113.122
>> messages
>> per second. average: 117.302
>> [                          main] DefaultCamelContext            INFO
>>  Apache
>> Camel 2.2-SNAPSHOT (CamelContext:camel-1) is stopping
>> [aultMessageListenerContainer-1] EndpointMessageListener        ERROR
>> java.util.concurrent.RejectedExecutionException
>> org.apache.camel.RuntimeCamelException:
>> java.util.concurrent.RejectedExecutionException
>>        at
>>
>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1039)
>>        at
>>
>> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
>>        at
>>
>> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
>>        at
>>
>> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
>>        at
>>
>> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
>>        at
>>
>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
>>        at
>>
>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
>>        at
>>
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
>>        at
>>
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
>>        at
>>
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
>>        at java.lang.Thread.run(Thread.java:637)
>> Caused by: java.util.concurrent.RejectedExecutionException
>>        at
>>
>> org.apache.camel.processor.RedeliveryErrorHandler.isRunAllowed(RedeliveryErrorHandler.java:195)
>>        at
>>
>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:100)
>>        at
>>
>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91)
>>        at
>>
>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
>>        at
>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206)
>>        at
>>
>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
>>        at
>>
>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
>>        at
>>
>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
>>        at
>>
>> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
>>        ... 9 more
>> [aultMessageListenerContainer-1] efaultMessageListenerContainer WARN
>>  Execution of JMS message listener failed
>> org.apache.camel.RuntimeCamelException:
>> java.util.concurrent.RejectedExecutionException
>>        at
>>
>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1039)
>>        at
>>
>> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
>>        at
>>
>> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
>>        at
>>
>> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
>>        at
>>
>> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
>>        at
>>
>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
>>        at
>>
>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
>>        at
>>
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
>>        at
>>
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
>>        at
>>
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
>>        at java.lang.Thread.run(Thread.java:637)
>> Caused by: java.util.concurrent.RejectedExecutionException
>>        at
>>
>> org.apache.camel.processor.RedeliveryErrorHandler.isRunAllowed(RedeliveryErrorHandler.java:195)
>>        at
>>
>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:100)
>>        at
>>
>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91)
>>        at
>>
>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
>>        at
>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206)
>>        at
>>
>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
>>        at
>>
>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
>>        at
>>
>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
>>        at
>>
>> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
>>        ... 9 more
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 1100 messages so far. Last group took: 595 millis which is: 168.067
>> messages
>> per second. average: 120.614
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 1200 messages so far. Last group took: 331 millis which is: 302.115
>> messages
>> per second. average: 126.971
>> [mel thread 0: DataSetComponent] dataset://foo                  INFO
>>  Sent:
>> 1300 messages so far. Last group took: 334 millis which is: 299.401
>> messages
>> per second. average: 132.856
>> [                          main] dataset://foo                  INFO
>>  Stop:
>> Endpoint[dataset://foo]
>> [                          main] dataset://foo                  INFO
>>  Stop:
>> Endpoint[dataset://foo]
>> [                          main] DefaultInflightRepository      INFO
>>  Shutting down with no inflight exchanges.
>> [                          main] DefaultCamelContext            INFO
>>  Apache
>> Camel 2.2-SNAPSHOT (CamelContext:camel-1) stopped
>>
>>
>> So the question is what I do wrong?
>>
>> Best regards,
>> Nick
>>
>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Re: exception in load-testing using DataSet component

Posted by Willem Jiang <wi...@gmail.com>.
Hi,

It looks like the exception is thrown when the camel context is stopping 
and your dataset is still sending the data.

When you call assertMockEndpointsSatisfied(), camel will try to wait for 
the message for about 30 second.

If send a large amount of message, you need to add some sleep time in 
your testPerformance() method, to let camel finish the DataSet sending.

Willem


Nick Chistyakov wrote:
> Hello to all,
> 
> I found several examples that are using DataSet (SimpleDataSet) for load
> tests.
> So I wrote that simple test:
> 
> 
> package com.etna.sandbox;
> 
> import javax.jms.ConnectionFactory;
> import javax.naming.Context;
> import org.apache.activemq.ActiveMQConnectionFactory;
> import org.apache.camel.builder.RouteBuilder;
> import org.apache.camel.component.dataset.SimpleDataSet;
> import org.apache.camel.component.jms.JmsComponent;
> import org.apache.camel.test.junit4.CamelTestSupport;
> import org.apache.camel.util.jndi.JndiContext;
> import org.junit.Test;
> 
> /**
>  *
>  * @author nick
>  */
> public class PerformanceTest extends CamelTestSupport {
> 
>     private static int MESSAGE_COUNT            = 10000;
> 
>     public static final String BROKER_URI       = "tcp://localhost:61616";
> 
>     private static final String MOCK_OUT        = "mock:out";
>     private static final String INPUT_QUEUE     = "activemq:queue:dummy-in";
>     private static final String OUTPUT_QUEUE    =
> "activemq:queue:dummy-out";
>     private static final String DATASET_NAME    = "foo";
>     private static final String DATASET_URI     = "dataset:" + DATASET_NAME;
> 
> 
> 
>     private SimpleDataSet dataSet = new SimpleDataSet(MESSAGE_COUNT);
> 
>     @Override
>     protected Context createJndiContext() throws Exception {
>         JndiContext jndiContext = new JndiContext();
> 
>         ConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory(BROKER_URI);
>         jndiContext.bind("jms",
> JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
> 
>         dataSet.setReportCount(100);
>         jndiContext.bind(DATASET_NAME, dataSet);
> 
>         return jndiContext;
>     }
> 
>     @Override
>     protected RouteBuilder createRouteBuilder() throws Exception {
>         return new RouteBuilder() {
>             public void configure() throws Exception {
>                 from(DATASET_URI ).to(INPUT_QUEUE);
>                 from(INPUT_QUEUE ).to(OUTPUT_QUEUE);
>                 from(OUTPUT_QUEUE).to(DATASET_URI);
>             }
>         };
>     }
> 
>     @Test
>     public void testPerformance() throws Exception {
>         assertMockEndpointsSatisfied();
>     }
> }
> 
> 
> 
> 
> But I'm getting an exception if MESSAGE_COUNT is a big number (> 2000 for
> example)
> The test output is bellow:
> 
> 
> 
> 
> 
> [                          main] DefaultCamelContext            INFO  Apache
> Camel 2.2-SNAPSHOT (CamelContext:camel-1) is starting
> [                          main] DefaultCamelContext            INFO  JMX
> enabled. Using DefaultManagedLifecycleStrategy.
> [                          main] dataset://foo                  INFO  Start:
> Endpoint[dataset://foo] expecting 10000 messages
> [                 ActiveMQ Task] FailoverTransport              INFO
>  Successfully connected to tcp://localhost:61616
> [                 ActiveMQ Task] FailoverTransport              INFO
>  Successfully connected to tcp://localhost:61616
> [                          main] DefaultCamelContext            INFO  Apache
> Camel 2.2-SNAPSHOT (CamelContext:camel-1) started
> [                          main] MockEndpoint                   INFO
>  Asserting: Endpoint[dataset://foo] is satisfied
> [                 ActiveMQ Task] FailoverTransport              INFO
>  Successfully connected to tcp://localhost:61616
> [                 ActiveMQ Task] FailoverTransport              INFO
>  Successfully connected to tcp://localhost:61616
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 100 messages so far. Last group took: 821 millis which is: 121.803 messages
> per second. average: 121.803
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 100 messages so far. Last group took: 748 millis which is: 133.69
> messages per second. average: 133.69
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 200 messages so far. Last group took: 805 millis which is:
> 124.224 messages per second. average: 128.783
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 200 messages so far. Last group took: 824 millis which is: 121.359 messages
> per second. average: 121.581
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 300 messages so far. Last group took: 795 millis which is:
> 125.786 messages per second. average: 127.768
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 300 messages so far. Last group took: 795 millis which is: 125.786 messages
> per second. average: 122.951
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 400 messages so far. Last group took: 797 millis which is: 125.471 messages
> per second. average: 123.571
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 400 messages so far. Last group took: 798 millis which is:
> 125.313 messages per second. average: 127.146
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 500 messages so far. Last group took: 856 millis which is:
> 116.822 messages per second. average: 124.938
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 500 messages so far. Last group took: 857 millis which is: 116.686 messages
> per second. average: 122.13
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 600 messages so far. Last group took: 872 millis which is:
> 114.679 messages per second. average: 123.102
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 600 messages so far. Last group took: 872 millis which is: 114.679 messages
> per second. average: 120.822
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 700 messages so far. Last group took: 1035 millis which is: 96.618 messages
> per second. average: 116.647
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 700 messages so far. Last group took: 1054 millis which is:
> 94.877 messages per second. average: 118.084
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 800 messages so far. Last group took: 848 millis which is:
> 117.925 messages per second. average: 118.064
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 800 messages so far. Last group took: 867 millis which is: 115.34 messages
> per second. average: 116.482
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 900 messages so far. Last group took: 772 millis which is:
> 129.534 messages per second. average: 119.237
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 900 messages so far. Last group took: 773 millis which is: 129.366 messages
> per second. average: 117.786
> [aultMessageListenerContainer-1] dataset://foo                  INFO
>  Received: 1000 messages so far. Last group took: 885 millis which is:
> 112.994 messages per second. average: 118.582
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 1000 messages so far. Last group took: 884 millis which is: 113.122 messages
> per second. average: 117.302
> [                          main] DefaultCamelContext            INFO  Apache
> Camel 2.2-SNAPSHOT (CamelContext:camel-1) is stopping
> [aultMessageListenerContainer-1] EndpointMessageListener        ERROR
> java.util.concurrent.RejectedExecutionException
> org.apache.camel.RuntimeCamelException:
> java.util.concurrent.RejectedExecutionException
>         at
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1039)
>         at
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
>         at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
>         at
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
>         at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
>         at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
>         at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
>         at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
>         at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
>         at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
>         at java.lang.Thread.run(Thread.java:637)
> Caused by: java.util.concurrent.RejectedExecutionException
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.isRunAllowed(RedeliveryErrorHandler.java:195)
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:100)
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91)
>         at
> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
>         at
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
>         at
> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
>         at
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
>         ... 9 more
> [aultMessageListenerContainer-1] efaultMessageListenerContainer WARN
>  Execution of JMS message listener failed
> org.apache.camel.RuntimeCamelException:
> java.util.concurrent.RejectedExecutionException
>         at
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1039)
>         at
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
>         at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
>         at
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
>         at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
>         at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
>         at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
>         at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
>         at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
>         at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
>         at java.lang.Thread.run(Thread.java:637)
> Caused by: java.util.concurrent.RejectedExecutionException
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.isRunAllowed(RedeliveryErrorHandler.java:195)
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:100)
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91)
>         at
> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
>         at
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
>         at
> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
>         at
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
>         ... 9 more
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 1100 messages so far. Last group took: 595 millis which is: 168.067 messages
> per second. average: 120.614
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 1200 messages so far. Last group took: 331 millis which is: 302.115 messages
> per second. average: 126.971
> [mel thread 0: DataSetComponent] dataset://foo                  INFO  Sent:
> 1300 messages so far. Last group took: 334 millis which is: 299.401 messages
> per second. average: 132.856
> [                          main] dataset://foo                  INFO  Stop:
> Endpoint[dataset://foo]
> [                          main] dataset://foo                  INFO  Stop:
> Endpoint[dataset://foo]
> [                          main] DefaultInflightRepository      INFO
>  Shutting down with no inflight exchanges.
> [                          main] DefaultCamelContext            INFO  Apache
> Camel 2.2-SNAPSHOT (CamelContext:camel-1) stopped
> 
> 
> So the question is what I do wrong?
> 
> Best regards,
> Nick
>