Hi

The reason why you get at most 5 is that you are using the
asyncRequestBody that uses a thread pool with a default size of 5.
This is going to be improved in Camel 2.1 where you can configure
thread pools much more easily with Camel.

You can create you own producer template and pass in the executor
service you can define with a higher thread pool and type of choice
    public DefaultProducerTemplate(CamelContext context,
ExecutorService executor) {



On Thu, Jul 16, 2009 at 11:52 AM, Claus Ibsen<claus.ib...@gmail.com> wrote:
> Hi
>
> Why are you using asyncRequesyBody()?
>
> Its for request/reply messaging and are you really doing that? Do you
> expect a reply?
>
> A simple route like this
>
> from("seda:foo?concurrentConsumers=10").to("mock:before").delay(2000).to("mock:result");
>
> Works fine with 10 concurrent and all will be done in about 2 sec time.
>
>
>
> On Tue, Jul 14, 2009 at 3:57 AM, Ole Jørgensen<o...@amfibia.dk> wrote:
>>
>> Concurrentconsumers not concurrent
>>
>> I made a test with concurrentconsumers. Problem is that I can get max 5
>> realy concurrent threads. I log the id and name of the treads and it seems,
>> that camel indeed is making the right number of threads but only 5 is realy
>> working concurrent.
>> I put 25 messages on a seda queue and specify concurrentconsumers. My
>> consumer works for 2 seconds on each message. Concurrentconsumers works as
>> expected for 1-5 cunsumers, but specifying more than 5 concurrentconsumers
>> does not make more consumers work concurrent - max 5. I would expect all 25
>> messages to be consumed and handled in 2 seconds with 25 concurrentconsumers
>> or more. If I split the messages on 2 different queues I still get max 5
>> realy concurrentconsumers.
>> Same story when I use activemq.
>>
>> What am I doing wrong ?
>>
>>
>> -------------------------
>> <camel:camelContext id="camelContext">
>>        <camel:endpoint id="site0" 
>> uri="activemq:site0?concurrentConsumers=10"/>
>>        <camel:endpoint id="site1" 
>> uri="activemq:site1?concurrentConsumers=10"/>
>> </camel:camelContext>
>>
>> <bean id="siteHandler0" class="SiteHandler"/>
>> <bean id="siteHandler1" class="SiteHandler"/>
>>
>> ------------------------
>>
>> public class CamelRoutes extends RouteBuilder {
>>   �...@override
>>    public void configure() throws Exception {
>>        from("sites").to("bean:split");
>>        from("site0").to("bean:siteHandler0");
>>        from("site1").to("bean:siteHandler1");
>>    }
>> }
>> ---------------
>>
>> public Map onCheese(Map<String, Object> input) {
>>
>>    Map<String, Object> res = new HashMap<String, Object>();
>>
>>    Future[] futures = new Future[25];
>>    for (int i = 0; i < futures.length; i++) {
>>        Map<String, Object> newInput = new HashMap<String, Object>();
>>        newInput.putAll(input);
>>        newInput.put("i", i);
>>        futures[i] = producerTemplate.asyncRequestBody("site" + (i % 2),
>> newInput);
>>        System.out.println("send = " + i);
>>    }
>>    System.out.println("------------------ Checking futures
>> ------------------------");
>>    for (int i = 0; i < futures.length; i++) {
>>        Future future = futures[i];
>>        Map reply = producerTemplate.extractFutureBody(future, Map.class);
>>        res.putAll(reply);
>>    }
>>    return res;
>> }
>>
>> -----------------------
>>
>> public class SiteHandler {
>>    public Map onSite(Map<String, Object> input) {
>>        System.out.println("siteHandler: " + input.get("i"));
>>
>>        long start = System.currentTimeMillis();
>>        while (System.currentTimeMillis() < start + 2000);
>>
>>        Map<String, Object> res = new HashMap<String, Object>();
>>        res.putAll(input);
>>        res.put(this.hashCode() + "", input.get("i"));
>>        res.put(Thread.currentThread().getId() + ": " +
>> Thread.currentThread().getName(), input.get("i"));
>>
>>        return res;
>>    }
>> }
>> ---------------------
>> --
>> View this message in context: 
>> http://www.nabble.com/Concurrentconsumers-not-concurrent-tp24472473p24472473.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to