Hi Tim, Thanks once again for taking the time to help me out. I really appreciate that. I'm very sorry for not mentioning the ActiveMQ version that I am using. I'm using ActiveMQ 5.10.0. Though my concern is about /batch send/ and PFC, I also tested async send to answer your questions. I sent around 1 million messages by specifying /jms.useAsyncSend=true/ in the connection URI. I used a standard Camel consumer to consume the messages and write it to a text file. (I just used the example code that's shipped with Camel) My payload is around 2 kb per message.
By the time my producer finished sending 1 million messages, there were around 900k messages pending in the queue. I used per-destination memory limit of /1 mb/. <http://activemq.2283324.n4.nabble.com/file/n4701260/pfc-not-applied-when-using-async-send.png> I could see PFC in action when I don't use async send. This is what I expected and is consistent with the PFC documentation which states that PFC won't kick in for async sends unless PWS (Producer Window Size) is configured. While using async sends, I expect PFC to kick in and bring everything to a stand still when the system /memory limit/ threshold is reached. However when I used / batch sends/ PFC did kick in only when system / store limit / was reached. Moreover, I couldn't use PWS at all while using batch sends. Here's my activemq.xml: -- View this message in context: http://activemq.2283324.n4.nabble.com/What-is-the-correct-way-to-throttle-ActiveMQ-producers-who-send-persistent-messages-in-batches-to-a--tp4701204p4701260.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.