You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by "Wisler, Trina" <Tr...@hp.com> on 2011/11/29 17:22:29 UTC

durable queues and routing

Hi all,

We have a federated network of C++ brokers setup.  When a message is produced, it will generally go through several layers of brokers before it is consumed by a client.  We have setup ring queues for the client so that its queue at the final layers doesn't get too backed up.  The problem we are having is with our bridge queues at lower levels when we have 1000's of messages going through per second (for generally short periods of time, but not always).  The bridge queues will back up and ultimately get deleted.  These bridge queues are setup directly through the routing command (qpid-route route add ....).  They are not recreated after being deleted.  I don't believe we can create these as durable queues explicitly through qpid-route as not all messages are routed to the same places throughout the hierarchy - it all depends on what the routing key is.   And it would appear that creating a queue in this manner suggests that ALL messages go from one place to the other since I am unable to specify a routing key.  If I am misunderstanding this piece, please clarify.

My question is this : can I make it so the bridge queues can automatically be recreated after being destroyed?  If one of the brokers goes down, we will automatically reestablish routes when it comes back up, but I need to cover the case where the queue is dropped for whatever reason, yet the infrastructure remains active.

Thanks,
Trina Wisler

RE: durable queues and routing

Posted by "Wisler, Trina" <Tr...@hp.com>.
We just upgraded to qpid 0.12.  I have to say that it sounds quite similar to what I am experiencing, and it looks like it was addressed in 0.13.

We only see this when our queue gets too backlogged.  The queue is destroyed and never comes back.

Trina

-----Original Message-----
From: Andy Goldstein [mailto:agoldste@redhat.com] 
Sent: Tuesday, November 29, 2011 10:12 AM
To: users@qpid.apache.org
Subject: Re: durable queues and routing

Trina,

What version of the broker are you running?  You may be running into a bug - https://issues.apache.org/jira/browse/QPID-3352 - that was recently fixed.

Andy

On Nov 29, 2011, at 1:05 PM, Wisler, Trina wrote:

> Thanks for your prompt reply Gordon.
> 
> We already recreate the routes automatically upon broker death/restart, so that piece is not a problem.  I'm wondering, though, if these federation subscription queues are not durable, what is the best way to programmatically determine if these queues went away while the broker is still active (and hence know to recreate them)?  Again, our problem is that these federated queues are sometimes getting destroyed underneath us and we need to know when this occurs. 
> 
> Thanks again,
> Trina Wisler
> 
> -----Original Message-----
> From: Gordon Sim [mailto:gsim@redhat.com] 
> Sent: Tuesday, November 29, 2011 8:47 AM
> To: users@qpid.apache.org
> Subject: Re: durable queues and routing
> 
> On 11/29/2011 04:22 PM, Wisler, Trina wrote:
>> Hi all,
>> 
>> We have a federated network of C++ brokers setup.  When a message is
>> produced, it will generally go through several layers of brokers
>> before it is consumed by a client.  We have setup ring queues for the
>> client so that its queue at the final layers doesn't get too backed
>> up.  The problem we are having is with our bridge queues at lower
>> levels when we have 1000's of messages going through per second (for
>> generally short periods of time, but not always).  The bridge queues
>> will back up and ultimately get deleted.  These bridge queues are
>> setup directly through the routing command (qpid-route route add
>> ....).  They are not recreated after being deleted.  I don't believe
>> we can create these as durable queues explicitly through qpid-route
>> as not all messages are routed to the same places throughout the
>> hierarchy - it all depends on what the routing key is.   And it would
>> appear that creating a queue in this manner suggests that ALL
>> messages go from one place to the other since I am unable to specify
>> a routing key.  If I am misunderstanding this piece, please clarify.
>> 
>> My question is this : can I make it so the bridge queues can
>> automatically be recreated after being destroyed?  If one of the
>> brokers goes down, we will automatically reestablish routes when it
>> comes back up, but I need to cover the case where the queue is
>> dropped for whatever reason, yet the infrastructure remains active.
> 
> The routes themselves can be made durable, in which case they will be 
> recreated on restart (assuming you have a store plugin loaded). However 
> any message published when they are not active will not be federated, 
> the federation subscription queues are not themselves durable.
> 
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:users-subscribe@qpid.apache.org
> 


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: durable queues and routing

Posted by Andy Goldstein <ag...@redhat.com>.
Trina,

What version of the broker are you running?  You may be running into a bug - https://issues.apache.org/jira/browse/QPID-3352 - that was recently fixed.

Andy

On Nov 29, 2011, at 1:05 PM, Wisler, Trina wrote:

> Thanks for your prompt reply Gordon.
> 
> We already recreate the routes automatically upon broker death/restart, so that piece is not a problem.  I'm wondering, though, if these federation subscription queues are not durable, what is the best way to programmatically determine if these queues went away while the broker is still active (and hence know to recreate them)?  Again, our problem is that these federated queues are sometimes getting destroyed underneath us and we need to know when this occurs. 
> 
> Thanks again,
> Trina Wisler
> 
> -----Original Message-----
> From: Gordon Sim [mailto:gsim@redhat.com] 
> Sent: Tuesday, November 29, 2011 8:47 AM
> To: users@qpid.apache.org
> Subject: Re: durable queues and routing
> 
> On 11/29/2011 04:22 PM, Wisler, Trina wrote:
>> Hi all,
>> 
>> We have a federated network of C++ brokers setup.  When a message is
>> produced, it will generally go through several layers of brokers
>> before it is consumed by a client.  We have setup ring queues for the
>> client so that its queue at the final layers doesn't get too backed
>> up.  The problem we are having is with our bridge queues at lower
>> levels when we have 1000's of messages going through per second (for
>> generally short periods of time, but not always).  The bridge queues
>> will back up and ultimately get deleted.  These bridge queues are
>> setup directly through the routing command (qpid-route route add
>> ....).  They are not recreated after being deleted.  I don't believe
>> we can create these as durable queues explicitly through qpid-route
>> as not all messages are routed to the same places throughout the
>> hierarchy - it all depends on what the routing key is.   And it would
>> appear that creating a queue in this manner suggests that ALL
>> messages go from one place to the other since I am unable to specify
>> a routing key.  If I am misunderstanding this piece, please clarify.
>> 
>> My question is this : can I make it so the bridge queues can
>> automatically be recreated after being destroyed?  If one of the
>> brokers goes down, we will automatically reestablish routes when it
>> comes back up, but I need to cover the case where the queue is
>> dropped for whatever reason, yet the infrastructure remains active.
> 
> The routes themselves can be made durable, in which case they will be 
> recreated on restart (assuming you have a store plugin loaded). However 
> any message published when they are not active will not be federated, 
> the federation subscription queues are not themselves durable.
> 
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:users-subscribe@qpid.apache.org
> 


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


RE: durable queues and routing

Posted by "Wisler, Trina" <Tr...@hp.com>.
Thanks for your prompt reply Gordon.

We already recreate the routes automatically upon broker death/restart, so that piece is not a problem.  I'm wondering, though, if these federation subscription queues are not durable, what is the best way to programmatically determine if these queues went away while the broker is still active (and hence know to recreate them)?  Again, our problem is that these federated queues are sometimes getting destroyed underneath us and we need to know when this occurs. 

Thanks again,
Trina Wisler

-----Original Message-----
From: Gordon Sim [mailto:gsim@redhat.com] 
Sent: Tuesday, November 29, 2011 8:47 AM
To: users@qpid.apache.org
Subject: Re: durable queues and routing

On 11/29/2011 04:22 PM, Wisler, Trina wrote:
> Hi all,
>
> We have a federated network of C++ brokers setup.  When a message is
> produced, it will generally go through several layers of brokers
> before it is consumed by a client.  We have setup ring queues for the
> client so that its queue at the final layers doesn't get too backed
> up.  The problem we are having is with our bridge queues at lower
> levels when we have 1000's of messages going through per second (for
> generally short periods of time, but not always).  The bridge queues
> will back up and ultimately get deleted.  These bridge queues are
> setup directly through the routing command (qpid-route route add
> ....).  They are not recreated after being deleted.  I don't believe
> we can create these as durable queues explicitly through qpid-route
> as not all messages are routed to the same places throughout the
> hierarchy - it all depends on what the routing key is.   And it would
> appear that creating a queue in this manner suggests that ALL
> messages go from one place to the other since I am unable to specify
> a routing key.  If I am misunderstanding this piece, please clarify.
>
> My question is this : can I make it so the bridge queues can
> automatically be recreated after being destroyed?  If one of the
> brokers goes down, we will automatically reestablish routes when it
> comes back up, but I need to cover the case where the queue is
> dropped for whatever reason, yet the infrastructure remains active.

The routes themselves can be made durable, in which case they will be 
recreated on restart (assuming you have a store plugin loaded). However 
any message published when they are not active will not be federated, 
the federation subscription queues are not themselves durable.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: durable queues and routing

Posted by Gordon Sim <gs...@redhat.com>.
On 11/29/2011 04:22 PM, Wisler, Trina wrote:
> Hi all,
>
> We have a federated network of C++ brokers setup.  When a message is
> produced, it will generally go through several layers of brokers
> before it is consumed by a client.  We have setup ring queues for the
> client so that its queue at the final layers doesn't get too backed
> up.  The problem we are having is with our bridge queues at lower
> levels when we have 1000's of messages going through per second (for
> generally short periods of time, but not always).  The bridge queues
> will back up and ultimately get deleted.  These bridge queues are
> setup directly through the routing command (qpid-route route add
> ....).  They are not recreated after being deleted.  I don't believe
> we can create these as durable queues explicitly through qpid-route
> as not all messages are routed to the same places throughout the
> hierarchy - it all depends on what the routing key is.   And it would
> appear that creating a queue in this manner suggests that ALL
> messages go from one place to the other since I am unable to specify
> a routing key.  If I am misunderstanding this piece, please clarify.
>
> My question is this : can I make it so the bridge queues can
> automatically be recreated after being destroyed?  If one of the
> brokers goes down, we will automatically reestablish routes when it
> comes back up, but I need to cover the case where the queue is
> dropped for whatever reason, yet the infrastructure remains active.

The routes themselves can be made durable, in which case they will be 
recreated on restart (assuming you have a store plugin loaded). However 
any message published when they are not active will not be federated, 
the federation subscription queues are not themselves durable.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org