[
https://issues.apache.org/jira/browse/ARTEMIS-2097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17449268#comment-17449268
]
Gary Tully commented on ARTEMIS-2097:
-------------------------------------
moving back from max-size-bytes - if that is changed at runtime, the logic
around being full breaks, the memory usage goes to 0, not ideal. The usage %
becomes meaningless.
using flow control seems nicer, however it blocks producers - they stay
connected. That may not be ideal if they could producer elsewhere ok. But a
send timeout could sort that.
it is also not immediate, in that with existing credit of 100, block, you can
still send 100 messages before blocking. block does not renew credit. I wonder
if there is a way to "reverse" drain?
This needs further research.
a work in progress:
https://github.com/apache/activemq-artemis/pull/3863/files#diff-b5ad7125b091f2edef4e0a3aff27ed2aac2b10865e56e8959f2cb6acdb348182R700
> 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.20.1#820001)