🎄 Happy Holidays! 🥳

Most of Solace is closed December 24–January 1 so our employees can spend time with their families. We will re-open Thursday, January 2, 2024. Please expect slower response times during this period and open a support ticket for anything needing immediate assistance.

Happy Holidays!

Please note: most of Solace is closed December 25–January 2, and will re-open Tuesday, January 3, 2023.

TTL - Message Expiry check on the queue..

giri
giri Member, Administrator, Employee Posts: 116 admin

If TTL on a message is set to 180secs (say), wondering when the expiry is checked and removal of expired events occur?
Just curious how the following scenarios are handled:
a) If DMQ is enabled, the dequeue from current queue and enqueue on the DMQ has to occur at the exact time when the message expired, right?
b) If no DMQ, for a durable queue how long will the messages be held in the queue? The expiry check is automatic (back-ground ops) or triggered by some action (like request)?

Tagged:

Best Answer

  • TomF
    TomF Member, Employee Posts: 412 Solace Employee
    #2 Answer ✓

    Hi @giri,

    Expiry checking is an asynchronous, background process, so it isn't triggered by anything external, such as a bind to a queue or an admin command. That should answer b).

    For a), it's important to remember Solace's spool based architecture: the message data is held in an abstracted view of persistent storage called "the spool." Queues are a view of the spool: messages in a queue are actually stored as references to the original message. So when a message is "moved" from a queue to a DMQ, what's actually happening is the reference is deleted from the original queue and added to the DMQ. For our purposes, that's instantaneous.

    Hope that helps!

Answers

  • TomF
    TomF Member, Employee Posts: 412 Solace Employee
    #3 Answer ✓

    Hi @giri,

    Expiry checking is an asynchronous, background process, so it isn't triggered by anything external, such as a bind to a queue or an admin command. That should answer b).

    For a), it's important to remember Solace's spool based architecture: the message data is held in an abstracted view of persistent storage called "the spool." Queues are a view of the spool: messages in a queue are actually stored as references to the original message. So when a message is "moved" from a queue to a DMQ, what's actually happening is the reference is deleted from the original queue and added to the DMQ. For our purposes, that's instantaneous.

    Hope that helps!

  • giri
    giri Member, Administrator, Employee Posts: 116 admin

    Thanks Tom, as always pretty explanative 👍