Max TTL for DMQs

sjaak
sjaak Member Posts: 103 ✭✭✭
edited February 2021 in PubSub+ Event Broker #1

I just bumped into this issue. We are replacing ActiveMQ with Solace for multiple customers so we somehow must implement this. It appears that Solace does not support this, see https://docs.solace.com/Configuring-and-Managing/Configuring-Queues.htm#Configur21.

Is there any workaround for this? We want to automatically delete messages from the DMQ when the TTL expired.

Tagged:

Answers

  • sjaak
    sjaak Member Posts: 103 ✭✭✭

    Aha...it seems to work for manually created DMQ's. I used #DEAD_MSG_QUEUE, is that indeed the issue? Which is fine for us. Thank you

  • TomF
    TomF Member, Employee Posts: 406 Solace Employee

    Hi @sjaak, be careful. The "DMQEligible" message header is stripped from messages as they are moved to any DMQ - I'm not sure if other TTL/DMQ headers are stripped as well. I suspect you would need to set the TTL at the queue level, although I haven't tested.

  • sjaak
    sjaak Member Posts: 103 ✭✭✭
    edited February 2021 #4

    Hi Tom,
    I just did a test. Boomi retries the message twice from q1, then moves it to DMQ #q1 and then removes the message after 60 seconds from #q1. I assume this is the way it should work right? This is how we implemented this on ActiveMQ in the past.

    Queue name = q1
    Respect TTL=false
    TTL=0
    Retries=2
    DMQ name =#q1

    Queue name = #q1
    Respect TTL=true
    TTL=60 seconds
    Retries=0
    DMQ name =#DEAD_MSG_QUEUE