TTL - Message Expiry check on the queue..

Options
giri
giri Member, Administrator, Employee Posts: 110 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: 408 Solace Employee
    #2 Answer ✓
    Options

    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: 408 Solace Employee
    #3 Answer ✓
    Options

    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: 110 admin
    Options

    Thanks Tom, as always pretty explanative 👍