You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Pavel Moravec <pm...@redhat.com> on 2011/12/08 16:24:10 UTC
Federation link drops messages when one destination queue is full?
Hi,
I spotted a weird behavior of queue route when destination broker rejects a message due to one full queue. See this scenario:
(dst-broker):
qpid-config add exchange fanout my_exchange
qpid-config add queue limited_queue --max-queue-count=10
qpid-config add queue unlimited_queue
qpid-config bind my_exchange limited_queue
qpid-config bind my_exchange unlimited_queue
(src-broker):
qpid-config add queue test_queue
qpid-route queue add dst-broker src-broker my_exchange test_queue
./spout -c 15 test_queue
(dst-broker):
qpid-stat -q | grep queue
queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind
limited_queue 10 10 0 0 0 0 0 2
unlimited_queue 11 11 0 0 0 0 0 2
qpid-stat -e | grep exchange
exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
my_exchange fanout 2 10 20 0 0 0 0
(src-broker):
qpid-stat -q | grep queue
queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind
test_queue 0 15 15 0 0 0 0 1
That means:
- on dest.broker, 1 queue (the limtied one) bound to the fanout exchange has 10 messages, while the unlimited has 11.
- test_queue on src.broker sent out all 15 messages, while dest.broker received 11 of them only. The remaining 4 were lost.
Is that expected behavior? Specifically the 11 vs. 10 messages and (some) message lost is something I would not expect..
Kind regards,
Pavel
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org
Re: Federation link drops messages when one destination queue is
full?
Posted by Gordon Sim <gs...@redhat.com>.
On 12/08/2011 03:24 PM, Pavel Moravec wrote:
> Hi,
> I spotted a weird behavior of queue route when destination broker rejects a message due to one full queue. See this scenario:
>
> (dst-broker):
> qpid-config add exchange fanout my_exchange
> qpid-config add queue limited_queue --max-queue-count=10
> qpid-config add queue unlimited_queue
> qpid-config bind my_exchange limited_queue
> qpid-config bind my_exchange unlimited_queue
>
> (src-broker):
> qpid-config add queue test_queue
> qpid-route queue add dst-broker src-broker my_exchange test_queue
> ./spout -c 15 test_queue
>
> (dst-broker):
> qpid-stat -q | grep queue
> queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind
> limited_queue 10 10 0 0 0 0 0 2
> unlimited_queue 11 11 0 0 0 0 0 2
> qpid-stat -e | grep exchange
> exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
> my_exchange fanout 2 10 20 0 0 0 0
>
> (src-broker):
> qpid-stat -q | grep queue
> queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind
> test_queue 0 15 15 0 0 0 0 1
>
> That means:
> - on dest.broker, 1 queue (the limtied one) bound to the fanout exchange has 10 messages, while the unlimited has 11.
> - test_queue on src.broker sent out all 15 messages, while dest.broker received 11 of them only. The remaining 4 were lost.
>
> Is that expected behavior? Specifically the 11 vs. 10 messages and (some) message lost is something I would not expect..
The 11 message over the link will result in a successful enqueue on
unlimited_queue, then will fail when trying to enqueue on limited_queue.
This will terminate the link session. The lost messages are a result of
not using acknowledged transfer on the link. If you instead did:
qpid-route queue add --ack 1 dst-broker src-broker my_exchange test_queue
then messages would not be lost (though you would have a degree of
duplication, since the successfully enqueued message on unlimited would
still also be on the test_queue).
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org