Hi,

I wonder if anyone can point out where I'm going wrong, maybe I'm missing
something conceptually.

I have a multi-threaded client application which wants to do
request/response with a camel server application and I am trying to use the
ExchangePattern.InOut when calling the sendBody() on the Producer.

The behaviour I am observing is that if say 3 client threads try to call the
sendBody() method at the same time (i.e. try to send a request to the server
and wait for a response), only 1 client thread at a time will be able to do
some processing and the others effectively block until the processing of the
one in front finishes. So rather than processing taking place in parallel,
it takes place sequentially one after the other.

I know that sendBody() with the ExchangePattern.InOut pattern is a
synchronous call, that's fine and how I want it. But I am surprised that the
queue blocks when attempting multi threading because the JMS
request/response pattern described in ActiveMQ makes use of temporary
destinations to send responses back matching back using correlationIds.

Could anybody confirm if my assumptions are correct and if so, what could be
the problem?


-- 
View this message in context: 
http://www.nabble.com/Using-ExchangePattern.InOut-blocks-request-queue-tp19701558s22882p19701558.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to