Carael/CrossBusExplorer

delete deadletter and resend delete from deadletterQueue

Closed this issue · 6 comments

Hello!
I was looking for a long time for a servicebus explorer for azure that would work in linux. And after testing many I found this and i absolutely love it.

I have been using the windows version and that was the only reason i could not change to work in linux because i needed that servicebusexplorer.

But there is something I am not able to do in CrossExplorer and it is the ability to remove a message from a deadletter queue or when i want to resend a dead letter there is not option to remove the deadletter from the deadletterqueue

This will result in two deadletters messages with the same guid id but different times. and i cant delete one of them.

Please help.
I really want to stop using windows and move to windows. And thanks for this app it really good

Hello @andresparrab!

Glad to hear that. I got the same issue but with Mac - always needed Windows just to work with Azure Service Bus.

Regarding your issue. I guess you have 2 options:

  • Use the resend deadletters option. This will just move every deadletters to active queue:
    image
  • Use the messages tab, select Dead letter and instead of Peek lock, use the Receive and delete option. This will immediately remove the newest messages (top, by count) and you can view then and requeue one by one.
    image

If that doesn't suits you please describe in details how it was done in Service Bus Explorer and I guess and can add it.

Hello thank you for your answer.
so if i have like say 100 deadletters and i choose Receive and delete, will it remove the letters from the deadletter queue ?
all 100 of them ?and i will have them in my local computer?
and if i send only back 1 or dead letters back to the subscription what will happen to the rest 98? will they be deleted from the queue for ever?
I have a typical example here that we usually work with with the windows service explorer.

  1. We see that we have a bunch of deadletters in a subscription or topic lets say 100 to keep it simple.
  2. i choose to see all 100
  3. pick the first of the to read and find out the problem.
  4. then i fix the problem and resend. and it will remove from the deadletter and send to message, if everything goes well then it will be complete and disappear
  5. sometimes we want to modified the payload and resend it. without make a copy, just move the updated deadletter to messages to then be processed
  6. usually i make anew subscription with a filter to just "catch" this letter so i can work with , in service buss explorer i can choose to send to just a specific subscribtion: like myTestOfdeadletterSubscribtion. so it will only be sent there so i can work with it.
  7. sometime we see that there is nothing we can do so I want to click on the deadletter and just remove it.
    Is this possible to do in crossExplorer? because if somehow i can achieve that , good buy windows for ever :)

Thank you in advance and i hope i not bother.

If you retrieve 100 in the Receive and delete mode they are basically removed from the queue and you can view then in the CrossBusExplorer. You can edit and requeue them but once you close the view they are gone.

You can always retrieve them one by one or take the first 100 in peek mode - then they are just viewed, not removed from the qyeye.

For your use case just some remarks:
2, 3, 4: you can view them in peek mode to find the issue, then once you have it retrieve again in Receive and delete mode and resend.
5: that's easy - receive and delete, edit and resend
6: you can do this in CrossBusExplorer as well
7: The feature to receive and delete message by sequence number was dropped in the new azure sdk so that's not possible. You can just take the newest - and that's in my opinion how proper queueing mechanism should work. In order to remove all you can use the purge function:
image

Hello!
sorry to write after so long time, i had not schedule queue job so i could not test some things.

Thank you for explaining all steps.
But in step
7.sometimes we see that there is nothing we can do so I want to click on the deadletter and just remove it.
answer:
7: The feature to receive and delete message by sequence number was dropped in the Azure/azure-sdk-for-net#15097 so that's not possible. You can just take the newest - and that's in my opinion how proper queueing mechanism should work. In order to remove all you can use the purge function:

I quiet did not understand that one.. so the possibility to just rigth click and delete is not possible like this?
image

Because sometime lets say i retrieve 100 in peak mode and 10 of tghem are the same guid(same dead letter that some how come again and again. so I want just to remove 9 of the copies from the 100 i retrieved. and just keep the one of them to work with. like you see in the screenshot

Also another thing.if i retrieve 100 of them and just wan to send 1 (let say number 5 in the list) to make sure it went well .then work with maybe number 8 in the list. and so on without send all 100 all the time? like the screeshot below:
Here i can choose number 5 in the list and resend from dead letter and click remove message from dead letter queue when send. Becase in this case it will remove , send it to mesage and if not worked come back to DLQ.
But in the current CrossbusExplorer I have only the optioon to resend the DLQ but the old one stays in the deadleter queue. So when it did not work, i will have two of the same dead letters in DLQ. And if i try to fix the problem and sen like 50 times i will have 50 of the same mesages in DLQ instead of 1.
I hope you can make sence of what i try to achieve. And if not i will try to explain again in other words.
Or maybe i just doing it wrong. that is the way they show my how to do in the windows ServicebussExplorer at work and thats how i have been doint that.
But if im maybe doing this in a wrong way and there are betters ways or more liie you say "in my opinion how proper queueing mechanism should work" im more than happy to learn how to do that the proer way. as you write this application then it must be a idea on how to use this in the best way .. thank you and sorry for the lenghty text
image

Carael commented

I will double check this in the upcoming week.

Carael commented

In the version 0.4.1 I've added the delete button for peeked messages.
image

Let me know if this help in your case.

Btw. It's slower the deeper you peek into the messages - I need to iterate over them and complete by sequence number.