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  


Reply via email to