You need set the seda endpoint parameter on the first one endpoint, because Camel will pickup the created queue in the next endpoint.
Please change the first route like this … > .log('direct ${body}') > .to('seda:insert?blockWhenFull=true&size=5') -- Willem Jiang FuseSource Web: http://www.fusesource.com (http://www.fusesource.com/) Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English) http://jnn.javaeye.com (http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: willemjiang On Wednesday, September 12, 2012 at 1:51 AM, Tim Dudgeon wrote: > I'm trying to use the SEDA component with the concurrentConsumers options. > I'm setting a queue size and expecting the calling thread to block, but > its not working for me. > I have groovy code like this: > > > def vals = 1..10 > println vals > > CamelContext camelContext = new DefaultCamelContext() > camelContext.addRoutes(new RouteBuilder() { > def void configure() { > from('direct:start') > .split(body()) > .log('direct ${body}') > .to('seda:insert') > > from('seda:insert?concurrentConsumers=3&blockWhenFull=true&size=5') > .delay(100) > .log('seda ${body}') > } > }) > camelContext.start() > > def template = camelContext.createProducerTemplate() > println 'starting' > template.sendBody('direct:start', vals) > println 'done' > > > > and its outputting this: > > 915 [main] INFO org.apache.camel.impl.DefaultCamelContext - Apache Camel > 2.10.1 (CamelContext: camel-1) started in 0.348 seconds > starting > 941 [main] INFO route1 - direct 1 > 944 [main] INFO route1 - direct 2 > 944 [main] INFO route1 - direct 3 > 945 [main] INFO route1 - direct 4 > 945 [main] INFO route1 - direct 5 > 945 [main] INFO route1 - direct 6 > 946 [main] INFO route1 - direct 7 > 946 [main] INFO route1 - direct 8 > 946 [main] INFO route1 - direct 9 > 946 [main] INFO route1 - direct 10 > done > 2009 [Camel (camel-1) thread #2 - seda://insert] INFO route2 - seda 3 > 2009 [Camel (camel-1) thread #1 - seda://insert] INFO route2 - seda 2 > 2009 [Camel (camel-1) thread #0 - seda://insert] INFO route2 - seda 1 > 2110 [Camel (camel-1) thread #0 - seda://insert] INFO route2 - seda 6 > 2110 [Camel (camel-1) thread #1 - seda://insert] INFO route2 - seda 4 > 2110 [Camel (camel-1) thread #2 - seda://insert] INFO route2 - seda 5 > 2210 [Camel (camel-1) thread #0 - seda://insert] INFO route2 - seda 7 > 2210 [Camel (camel-1) thread #1 - seda://insert] INFO route2 - seda 8 > 2210 [Camel (camel-1) thread #2 - seda://insert] INFO route2 - seda 9 > 2310 [Camel (camel-1) thread #0 - seda://insert] INFO route2 - seda 10 > > > > Clearly the calling route is not blocking. > What am I doing wrong? > This is with 2.10. > > > Tim