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 >