Thanks, Tom. This is also valuable insight and a very valuable information.
However, I think you got it wrong:
final boolean sendProducerAck = !message.isResponseRequired() &&
producerInfo.getWindowSize() > 0
&& !context.isInRecoveryMode();
It essentially says that one of the conditions to actually send producer
ACK, is to have producer window size. And Producer ACK is at the core of
producer flow control mechanism. This is also confirmed by Christian Posta,
following the link you added:
>>> yes. if you send asynchronously (tx or non-persist messages by default),
>>> you can enable producer window to not block the connection on producer
>>> flow control.
.. so he says this will avoid blocking of the whole connection, which is
essentially what PFC does by restricting separate producers.
--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html