If your broker is forwarding to another broker similar to a network of
brokers configuration you could stop the network connector between them
temporarily via JMX.  The configuration could be similar to the following:

Before Connector Stop:

(Producer) -> (Broker 1) -> (Broker 2) -> (Consumer)

After Connector Stop:

(Producer) -> (Broker 1) XXLink DownXX (Broker 2) -> (Consumer)

At this point you would do your upgrade procedure on the consumer. Then
start the downed link back up.  What this would effectively accomplish is
queuing all the messages on broker 1 until the link between broker 1 and
broker 2 has been reestablished.

-Trevor


Roger Hoover wrote:
> 
> Stopping the consumers involves sending SIGTERM to them which could
> kill them in the middle of processing a message.  Being able to
> suspend delivery would allow us to make sure they were no longer
> processing messages before we kill them.  Granted, we can get around
> this problem by retrofitting the code to handle SIGTERM appropriately
> but this would have been the easier approach.
> 
> However, there may be other use cases for a "suspend delivery" feature.
> 
> On 11/1/07, James Strachan <[EMAIL PROTECTED]> wrote:
>> On 01/11/2007, Roger Hoover <[EMAIL PROTECTED]> wrote:
>> > While rolling out new consumer code, we'd like to suspend the broker
>> > so that messages can be enqueued but not delivered.  Once we've pushed
>> > the new code out and restarted the consumers, we want to resume
>> > message delivery.
>> >
>> > Is this possible with ActiveMQ?
>> >
>> > Any advice/info is appreciated.  Thanks,
>>
>> Why not just stop the consumers, redeploy the code and restart them?
>>
>> --
>> James
>> -------
>> http://macstrac.blogspot.com/
>>
>> Open Source SOA
>> http://open.iona.com
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Is-it-possible-to-suspend-and-resume-message-delivery-for-broker--tf4733097s2354.html#a13538863
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to