camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Keith Freeman <8fo...@gmail.com>
Subject Re: capacity of seda/vm with multipleConsumers=true?
Date Mon, 28 Oct 2013 01:24:17 GMT
Thanks for responding, I had read that before, but I don't think it 
explains how or when a queue with multipleConsumers becomes full. 
Without reading the code, I would guess that probably a message is not 
removed from the queue until ALL consumers have read it (meaning that if 
any single consumer stalls, the queue will eventually fill and the 
producer will be blocked), but whether that's true or not is not 
indicated in the documentation.  And even knowing that it's a 
LinkedBlockingQueue doesn't help answer that question, since it depends 
entirely on how the queue is used by Camel.

So I think it would be useful to know the detailed semantics of SEDA 
queue when blockWhenFull is true and multipleConsumers is true, e.g. is 
my guess above correct?



On 10/27/2013 01:52 PM, gquintana wrote:
> Hi,
>
> Reading from  SEDA component documentation
> <http://camel.apache.org/seda.html#SEDA-Options>  , I can see:
> "blockWhenFull	2.9	false	 Whether a thread that sends messages to a full
> SEDA queue will block until the queue's capacity is no longer exhausted. By*
> default, an exception will be thrown stating that the queue is full. By
> enabling this option, the calling thread will instead block and wait until
> the message can be accepted.*"
>
> Internally, the Seda component is based on a  LinkedBlockingQueue
> <http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/LinkedBlockingQueue.html>
> , it's not a ring buffer.
>
> Gérald
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/capacity-of-seda-vm-with-multipleConsumers-true-tp5742266p5742280.html
> Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message