Hello,

It looks like there is a mismatch in the documentation. From piece 1 (below) I 
understand that messages would be shunted into the temporary file even if 
producerFlowControl=true, but from piece 2 it sounds like it only would happen 
if producerFlowControl=false


Piece 1
https://activemq.apache.org/producer-flow-control.html
Note that, since the introduction of the new file cursor in ActiveMQ 5.x, 
non-persisted messages are shunted into the temporary file store to reduce the 
amount of memory used for non-persistent messaging. As a result, you may find 
that a queue’s memoryLimit is never reached, as the cursor doesn’t use very 
much memory. If you really do want to keep all your non-persistent messages in 
memory, and stop producers when the limit is reached, you should configure the 
<vmQueueCursor>

Piece 2
https://activemq.apache.org/per-destination-policies
producerFlowControl - If true the broker will throttle (flow-control) the 
producer. Throttling is achieved either by withholding the producer’s ACK or by 
raising a javax.jms.ResourceAllocationException (that’s propagated back to the 
client) when local resources, e.g., memory and/or storage, have been exhausted. 
If false excess messages will be written to the message store to prevent memory 
exhaustion. However, when the message store reaches capacity the producer will 
be throttled until resources are freed.


Best regards,
Daniel

Reply via email to