[ 
https://issues.apache.org/jira/browse/ARTEMIS-2097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17419089#comment-17419089
 ] 

Gary Tully commented on ARTEMIS-2097:
-------------------------------------

I like the idea of setting max-size-bytes to 0 for an address. whatever the 
current value, go to 0, ie: don't accept any new messages - address is full - 
error or block as appropriate, but consumers must be able to drain such that 
usage goes to 0.
or global-max-size to ensure all addresses go to 0.
those could be exposed as setting those attributes, or 
pauseProducer/pauseAllProducers... but the concept of 'constraining' the broker 
to get it to a point where it can only accept 1 message at a time or 0 messages 
 (and quiesce), seems intuitive. If I have no space, I cannot accept any 
message. From the dispatch/consumer point of view - keep going to try and free 
up space.

> Pause and Block Producers
> -------------------------
>
>                 Key: ARTEMIS-2097
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2097
>             Project: ActiveMQ Artemis
>          Issue Type: New Feature
>          Components: Broker
>    Affects Versions: 1.5.5
>         Environment: AMQ-1.5.5
>            Reporter: Tyronne Wickramarathne
>            Assignee: Howard Gao
>            Priority: Major
>
> Could it be possible to block all incoming messages without changing the 
> address-full-policy to 'BLOCK'?
> The address full policy can be configured to block incoming messages should 
> the address full policy reaches the configured max-size-bytes attributes.
> However, on certain circumstances it is important to make a JMS destination 
> drain without accepting incoming messages while keeping the 
> address-full-policy at 'PAGE'. For an instance, if a user needs to bring down 
> the broker for maintenance, it is important to allow the user to drain 
> existing messages in the corresponding destination without accepting any new 
> messages.
>  
> Currently the pause() method on a destination pauses message consumers. In a 
> similar fashion could it be possible to add a new method to block message 
> producers on a given destination irrespective of the address-full-policy 
> being used?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to