Hi

You are welcome to improve the docs, eg add some details about this to
the asyncConsumer option.
http://camel.apache.org/jms

Though maybe its best placed be on the async routing engine page, as
it applies to how it works and under which circumstances.
http://camel.apache.org/asynchronous-routing-engine.html

And then you can refer to this page from the jms page, for more details.

And lets keep the option name as is, as this is the naming convention
used by Camel and in the source code as well.

We love contributions
http://camel.apache.org/contributing.html

And here is how to help edit the docs
http://camel.apache.org/how-do-i-edit-the-website.html

On Thu, Sep 25, 2014 at 4:07 AM, Andrew Thorburn <[email protected]> wrote:
> Hey guys,
>
> Just want to clarify that I understand how this works correctly:
>
> Setting the "asyncConsumer" option to "true" on a JMS Consumer does not, in
> and of itself, mean that messages are guaranteed to be processed
> asynchronously, but it does mean that if an endpoint supports asynchronous
> behaviour, the Camel JMS consumer will allow that.
>
> In other words, if you set "asyncConsumer" to "true", but none of your
> endpoints in your pipeline allow asynchronous processing, it will all get
> processed synchronously anyway.
>
> In that case, you would need to wrap everything you wanted processed
> asynchronously in a <threads> tag (or a threads() call), which would allow
> you to control the number of threads, the queue size, etc.
>
> Conversely, even if you provide a <threads> wrapper, if asyncConsumer is
> set to "false", it will get processed synchronously.
>
> Is that correct? It appears to be, based on what I can see in the source
> code (looking at Threads, JMS Configuration, JMS Consumer,
> EndpointMessageListener, etc).
>
> If that's correct, wouldn't it make sense to rename the option
> asyncConsumer to asyncAllowed (or maybe asyncConsumerAllowed)?
> asyncConsumer implies, at least to me, that the consumer will somehow
> magically run everything asynchronously without the need for further
> configuration, when that does not appear to be true. asyncAllowed is closer
> to what actually happens - in that setting the option does not magically
> make everything asynchronous, but if you *want* to make it asynchronous
> yourself, you can.
>
> Also, this implies that the example at the bottom of
> http://camel.apache.org/async.html is, if not wrong, then at least missing
> information, as it does not show that the JMS consumer has had the
> "asyncConsumer" option set on it anywhere.
>
> FWIW, as I'm integrating with WebSphere MQ, and the queue I'm consuming
> from is set to EXCLUSIVE_OPEN (or something along those lines), I don't
> believe that I can make any use of the
> concurrentConsumers/maxConcurrentConsumers options on the JMS endpoint.
>
> Thanks,
>
> - Andrew Thorburn



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [email protected]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Reply via email to