Gordon,

Thank you very much for the detailed answer. It is really helpful for me.

Regards,
Boris

-----Original Message-----
From: Gordon Sim [mailto:[email protected]] 
Sent: Tuesday, July 26, 2011 3:43 PM
To: [email protected]
Subject: Re: static exchange route heartbeat

On 07/25/2011 10:54 AM, Ilyushonak Barys wrote:
> Could you please help me with the following issue.
> I have static exchange route from source broker (S) to destination (D).
> It works fine until network problems occurred.
> If the connection between S and D is broken (firewall for example), I have 
> internal private queue overflow on the source (S) broker.
> Is it expected behavior?

Not entirely... exchange routes use temporary queues and non-reliable transfer 
(i.e. messages are dequeued as soon as they are transferred).

That should mean that while the connection is considered open by the source 
broker it will continue to send messages. When the connection is considered 
closed it will delete the queue entirely.

However the writing out of messages is enabled by the socket being writeable. 
So possibly if the socket is not detected as closed, but is not writeable 
either, then messages could not be sent and the queue would back up eventually 
reaching its limits.

Heartbeats are enabled (and hardcoded at present) on federation links which I 
would have expected to catch this issue before too long (by closing the 
connection).

> How should I manage this issue?

There are two issues. The first is ensuring that 'broken' connections are 
detected properly. It sounds like perhaps this is not happening in your case. 
More detail might help identify why. Are you using firewalls to emulate 
connectivity failures?

The other issue is more generally handling the fact that you cannot buffer 
indefinitely, will eventually hit some limit and you want this to be clear and 
to affect the link rather than publishers to the source.

This could for example be using a ring queue for the route (or when it is 
available a delete policy https://issues.apache.org/jira/browse/QPID-3247). 
However at present you can't control the details of the queue for exchange 
routes. You would need to explicitly create a queue and then use a queue route 
from that.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]


_______________________________________________________

The information contained in this message may be privileged and conf idential 
and protected from disclosure. If you are not the original intended recipient, 
you are hereby notified that any review, retransmission, dissemination, or 
other use of, or taking of any action in reliance upon, this information is 
prohibited. If you have received this communication in error, please notify the 
sender immediately by replying to this message and delete it from your 
computer. Thank you for your cooperation. Troika Dialog, Russia. 
If you need assistance please contact our Contact Center  (+7495) 258 0500 or 
go to www.troika.ru/eng/Contacts/system.wbp  



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to