You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by GFO <gu...@gmail.com> on 2018/12/13 07:54:05 UTC

Cursors, queues and DLQ

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