L.S.,

The current release version of the servicemix-camel JBI component is
only capable of sending JBI exchanges synchronously.  This means that
in your scenerio, the first thread (the one that handles the incoming
exchange to jbi:http-message-consumer) is blocked when the route does
a sendSync to jbi:A.  Especially if you have a few Camel routes
chained together with jbi: endpoints, you quickly end up needing a lot
of threads to handle a single flow.  The only way to solve this at the
moment is by increasing the thread pool size.

With Camel 2.4.0, Camel itself will get improved support for
asynchronous message handling and we're upgrading our servicemix-camel
component to leverage these improvements to fix the problem you're
experiencing (cfr.
https://issues.apache.org/activemq/browse/SMXCOMP-770).  With these
changes, we now have a unit test (cfr.
http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/AsyncJbiMessagingTest.java?view=markup&pathrev=958366)
to ensure we can handle this kind of situations, even with a very
limited thread pool size.

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



On 9 June 2010 23:27, crankydillo <[email protected]> wrote:
> Hi,
>
> Assume that I'm sending InOut exchanges through the following Camel route:
>
> from("jbi:http-message-consumer").to("jbi:A").to("jbi:B")
>
> How many threads are required to complete the exchange?
>
> We've ran across some blocking issues when having too many JBI endpoints in
> a route.
>
> Thanks.
>

Reply via email to