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