1

Input: I have two queues in service bus. First one has ttl for 10 mins, enabled dead lettering and forwards messages on dead lettering to the second queue. Second queue has unbounded ttl and dead lettering enabled.

Scenario 1) I sent a message through java or python client to the first queue, tried to consume it, abandoned it. Message stays for 10 mins in the first queue then appears in the second queue with ttl of 10 mins in payload. After 10 mins it falls to dlq.

Scenario 2) I sent a message through service explorer (in azure portal) to the first queue, try to consume it, abandon. Message stays for 10 mins in the first queue then goes to the second with unbounded ttl in payload and it won't ever fall in dlq.

Scenario 3) I sent a a message through java or python client to the first queue, not trying to consume. After 10 mins it goes to the second queue with no ttl in payload and won't fall in dlq.

Scenario 4) Lets say now second queue has bounded ttl of 12 hours. I sent a a message through service explorer (in azure portal) to the first queue, trying to consume, abandoning. After 10 mins it goes to the second queue with unbounded ttl in payload and won't fall in dlq.

Sending is pretty straightforward:

this.serviceBusSenderClient.sendMessage(new ServiceBusMessage("test"));

So the question is why the behavior of ttl is different in all the cases? Especially for the first and second scenarios.

sansay61
  • 106
  • 9

0 Answers0