Thank you! This almost works ;) I was worried about doing this because
I didn't want the local source queue to fill up because I wouldn't be
popping messages off it but it looks like it handles it properly and
removes them from the source queue when they have been pulled to the
destination exchange....awesome.

However, I shutdown the destination broker, use spout to generate a
message, and then restart the destination broker. The message that was
missed while the broker was down is received but so is every past
message that was already received before the broker went down but with
redelivered set to true. I don't even know where these messages come
from because the queue on the source broker does not have any of those
messages. How can I get it to not receive the messages it has already
received?

Thanks,

-Brandon

On Tue, Sep 20, 2011 at 2:37 PM, Ted Ross <[email protected]> wrote:
> Brandon,
>
> You can do this with a queue route (i.e. the downstream broker subscribes to
> an existing queue).
>
> Static exchange routes may be durable, meaning they will reappear after a
> restart, but their queues are always transient.  Furthermore, when the route
> is down, there is no queue to hold the messages produced.
>
> If you create a queue, then establish a queue route to draw from that queue,
> the messages will accumulate there when the downstream broker is
> disconnected.
>
> When you set up the route in qpid-route, use the --ack N option with an N
> greater than zero.  This causes the brokers to acknowledge messages and will
> ensure that in-doubt messages (i.e. in flight during the failure) will be
> re-transmitted upon reconnection.
>
> The qpid-route syntax is:
>
>    qpid-route [OPTIONS] queue add <dest-broker> <src-broker> <exchange>
> <queue> [mechanism]
>
> where <exchange> is the name of the exchange on <dest-broker> where messages
> will be delivered to and <queue> is the name of the queue on <src-broker>
> where messages will be received from.
>
> -Ted
>
> On 09/20/2011 03:46 PM, Brandon Pedersen wrote:
>>
>> I am trying to get something like this working:
>>
>> - publish a message to a local exchange
>> - have the message get pushed to a remote exchange (or
>> pulled...preferably pushed)
>> and
>> - if the remote broker goes down, when it comes back up it will
>> receive all messages it missed while it was down
>>
>> I can get the first 2 working with a simple static route. However,
>> when the remote broker goes down it does not receive any of the
>> messages that were sent while it was down. Is there any way to do
>> this? And everything is being marked as durable (the queue, the
>> exchange, the binding, and the route)
>>
>> Thanks,
>>
>> -Brandon
>>
>> ---------------------------------------------------------------------
>> Apache Qpid - AMQP Messaging Implementation
>> Project:      http://qpid.apache.org
>> Use/Interact: mailto:[email protected]
>>
>
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:[email protected]
>
>

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

Reply via email to