I suggest to study the source code.

On Mon, Oct 28, 2013 at 3:32 PM, Keith Freeman <8fo...@gmail.com> wrote:
> Ok, but I don't think that answers the question.  Say I have one route
> putting things in the queue, and 3 other (parallel) routes reading the
> messages.  All 3 get each message, but when does Camel remove the message
> from the queue?
>
>  * after at least 1 of the readers takes the message
>  * after all of the readers take the message
>  * something else, like a quorum of N/2 + 1?
>
> I think we need to know this to understand the semantics of seda:/vm: with
> multipleConsumers=true.  But I'm guessing that the answer is that Camel
> removes the message only after all readers have taken it, otherwise multiple
> readers wouldn't be guaranteed to get every message.
>
>
> On 10/28/2013 06:11 AM, gquintana wrote:
>>
>> As it's a LinkedBlockingQueue, the messages are read using
>> BlockingQueue#poll
>> method, then whatever the result of the processing may be, the messages
>> has
>> been picked.
>>
>> I think the multipleConsumers acts like the  multicast
>> <http://camel.apache.org/multicast.html>   processor, you could replace
>> SEDA+multipleConsumers by SEDA+multicast and have the same result, and you
>> could execute theses consumers in parallel (fork & join).
>>
>> If you have only one parallel consumer (concurrentConsumers=1) and it
>> stalls, then the queue could fill and the producer could block or not
>> depending on the blockWhenFull setting. This is not related to
>> multipleConsumers settings though.
>>
>>
>>
>> --
>> View this message in context:
>> http://camel.465427.n5.nabble.com/capacity-of-seda-vm-with-multipleConsumers-true-tp5742266p5742296.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to