Hi all, I am trying to understand queues, DLQ, memoryLimit, producerFlowControl and cursors. I hope someone can help me!
My tests are: 1/ MemoryLimit on a queue, with producerFlowControl set to true (default). I send messages to this queue, memoryLimit is reached and then the producer is blocked. *=> I thought storeCursor was enabled by default, so that my producer won't be blocked (messages will be stored in storage space). Someone can explain?* 2/ MemoryLimit on a queue, with producerFlowControl to false and storeCursor. I send messages to this queue, memoryLimit and the producer is not blocked. StoreCursor seems to work as my messages are on storage space because queue's memory is full. *=> Do we need to set producerFlowControl to false to make cursors work?* It could have sense but I thought the default behaviour of ActiveMQ was store-based cursors with producerFlowControl enabled (cf. "Message Cursors" documentation page, last example). 3/ MemoryLimit on a DLQ (v1) DLQ is filled by errors after a consumer has rejected some messages. When memoryLimit is reached, messages go to the storage space. => OK. 4/ MemoryLimit on a DLQ (v2) I send messages to my DLQ with a producer. When memoryLimit is reached, the producer is blocked (like in my first test for queues). => How do you explain the different behaviour depending on how we fill a DLQ ? => Why does this behaviour is different between a queue and a DLQ? Thanks a lot for your explanations... Kind regards -- Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html