I am trying to resubmit all the deadletter messages back to its original queue. When I resubmit the message, it's again moving to deadletter.
This time I thought there might be some problem with the message. When I debugged it, it was having no problem.
Can anyone help me out?
Asked
Active
Viewed 1,889 times
0

Amit
- 167
- 1
- 2
- 14
-
Specifically, how are you moving it back from the deadletter to the original queue? – Rob Reagan Feb 13 '17 at 20:22
-
What's the dead-lettered reason on the messages moved into DLQ? It's a good starting point for your investigation. Debugger might skew things. – Sean Feldman Feb 14 '17 at 16:04
-
It says maximum delivery count reached! @Sean – Amit Feb 14 '17 at 19:40
1 Answers
2
Possible scenarios your messages end up in the DLQ are:
- Too slow processing, message
LockDuration
expires and message is retried again until all of theDeliveryCounts
are exhausted and message is DLQ-ed. - You have an aggressive
PrefetchCount
. Messages that are prefetched and not processed withinLockDuration
time are subject toDeliveryCount
increase (see #1) - Too short of
LockDuration
causing messages to being processed while the re-appear on the queue and picked up by other processing instances (or if you use OnMessage API with concurrency> 1). - Processing constantly failing, causing message eventually to end up in a DLQ.
I suspect you have #4. Not sure how you re-submit, but you have to clone the message and send it back. There was a similar question here, have a look.

Community
- 1
- 1

Sean Feldman
- 23,443
- 7
- 55
- 80
-
BrokeredMessage sendMsgBackToQueue = new BrokeredMessage(); sendMsgBackToQueue = msg.Clone(); client.Send(sendMsgBackToQueue); msg.Complete(); – Amit Feb 15 '17 at 10:24
-