You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Gary Tully (Jira)" <ji...@apache.org> on 2021/09/23 09:49:00 UTC

[jira] [Commented] (ARTEMIS-2097) Pause and Block Producers

    [ 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)