Hi, Im using

jdk1.6.0_11
tomcat-6.0.18
spring-framework-2.5.6 
camel-2.0-M2



Claus Ibsen-2 wrote:
> 
> Hi
> 
> What version of Camel are you using?
> 
> The current codebase uses a pool size as the concurrent consumers
> parameter
> 
>         int poolSize = endpoint.getConcurrentConsumers();
>         executor = ExecutorServiceHelper.newFixedThreadPool(poolSize,
> endpoint.getEndpointUri(), true);
> 
> 
> 
> On Tue, Jul 14, 2009 at 3:57 AM, Ole Jørgensen<[email protected]> 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
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Concurrentconsumers-not-concurrent-tp24472473p24503654.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to