activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From GFO <>
Subject Cursors, queues and DLQ
Date Thu, 13 Dec 2018 07:54:05 GMT
Hi all,

I am trying to understand queues, DLQ, memoryLimit, producerFlowControl and
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
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:

View raw message