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 <claus.ib...@gmail.com> wrote:

> On Mon, Dec 14, 2009 at 9:09 AM, Willem Jiang <willem.ji...@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
>

Reply via email to