Search code examples
c#.netsolace

Solace: nack a message without it being marked as redelivered


I was wondering if there is a way to nack a message without having it being marked as redelivered in Solace.

Situation: there's a guaranteed queue being serviced by multiple subscribers and we want another subscriber to process a particular message. Very much an edge case.

Does anyone have knowledge about this or tried this before?


Solution

  • There's no way to do this.

    You should try to ensure that the message never gets delivered to the subscriber that will reject the message.

    Your options are:

    1. Design the topic space such that this particular message gets sent to a different topic/queue with the different consumer bound to it.
    2. Apply selectors on the consumers on the queue so that only selected messages are delivered to each consumer.
    3. Configure the queue to expire and send messages to the dead message queue after a certain number of re-deliveries. The other subscriber can get the message from the dead message queue.