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

Andy Taylor commented on ARTEMIS-627:
-------------------------------------

I think having some sort of hard limit is needed, especially in IoT scenarios 
where users don't have complete control of the clients. This wasn't as much of 
a problem in the enterprise world. Saying that, I don't think we should change 
how it currently works because of the reasons Clebert gave. If the current 
blocking stays the same and we introduce a hard limit then I think this should 
be configurable enough for both use cases.

> Producer Block does work properly on CORE protocol
> --------------------------------------------------
>
>                 Key: ARTEMIS-627
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-627
>             Project: ActiveMQ Artemis
>          Issue Type: New Feature
>            Reporter: Martyn Taylor
>
> To BLOCK production of messages to an address once it reaches a particular 
> size in memory, an AddressSetting can be added to the broker that specifies 
> the address size, address match string and the address full policy "BLOCK".
> This should block messages once the address is full, however the current 
> implementation uses flow control to allocate producers credits, once the 
> address is full the broker will not allocate any more credits.
> There are two issues with this approach.
> 1. The main issue is that the credits are not tracked or checked at the 
> broker side.  The ActiveMQ client takes care of blocking message production 
> when it runs out of credit.  However, a rogue client could easily allocate 
> it's own credits and continue sending.  I've tested this by hacking the 
> client and it behaves in this way.
> 2. Even in a non hacked client the size of the address could be pushed over 
> it's limit, as more credits can be allocated than is available space on the 
> address.  An address can be full, no more credits are allocated but each 
> producer is able to empty it's credits pushing the address over its limit.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to