Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AzureServiceBus: new feature to show Dead letter #138

Open
adelinor opened this issue Jul 6, 2022 · 4 comments
Open

AzureServiceBus: new feature to show Dead letter #138

adelinor opened this issue Jul 6, 2022 · 4 comments
Labels
kind/enhancement New feature or request qm/azuresb

Comments

@adelinor
Copy link

adelinor commented Jul 6, 2022

Specifications

  • JMSToolBox version: 5.14.0
  • OS (Name, version, 32/64bits): Windows 10 Enterprise 64 bits
  • Q provider (kind, version) : AzureServiceBus

Expected Behavior

AzureServiceBus creates a Dead letter queue behind the scenes. It would be very helpful if this implicitly created queue could be seen from JMSToolBox.

Actual Behavior

JMSToolBox shows all queues that are explicitly created.

Steps to Reproduce the Problem

  1. Open a session configured for AzureServiceBus
  2. View existing queues under the session's name

Logs

Not applicable

@titou10titou10
Copy link
Contributor

It seems there is not way to retrieve the Dead Letter Queue(s) from the Azure server from the Java/JMS client
JMSToolBox uses the proprietarycom.microsoft.azure.servicebus.management.ManagementClientclass to retrieve the list of Queues and Topics from the server as there is no standard JMS way to do it
This class does not return dead letter queues with thegetQueues()method it seems

https://docs.microsoft.com/en-us/java/api/com.microsoft.azure.servicebus.management.managementclient?view=azure-java-stable

@titou10titou10 titou10titou10 added kind/enhancement New feature or request qm/azuresb labels Jul 6, 2022
@adelinor
Copy link
Author

adelinor commented Jul 7, 2022

Dear @titou10titou10 ,

It seems that a dead letter queue gets created for every queue. According to the article, https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dead-letter-queues, the naming convention is <queue name>/$deadletterqueue

Kind regards

@titou10titou10
Copy link
Contributor

titou10titou10 commented Jul 7, 2022

OK

  • Are those DLQ accessible/visible from a JMS client? Are they considered "first class" destinations from a JMS perspective?
  • How to retrieve the list of those DLQ from a JMS client? As said before. the only proprietary API I know to get the list of destination does not do that (iecom.microsoft.azure.servicebus.management.ManagementClient)

JTB could explicitely add those queues based on the naming convention set by Azure for those queues after having retrieved the list of Queues/Topics but this looks like a hack to me

@adelinor
Copy link
Author

adelinor commented Jul 8, 2022

Yes as per the unit test code added as a comment on issue #137 , when it exists, the dead letter is accessible from the JMS api as any other queue.
The isEnableDeadLetteringOnMessageExpiration() method would tell if the dead letter is configured for a given queue.

How to retrieve the list of those DLQ from a JMS client?
When retrieving the list of queues with com.microsoft.azure.servicebus.management.ManagementClient, then using the QueueDescription you can find out if a corresponding DLQ exists for a given queue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement New feature or request qm/azuresb
Projects
None yet
Development

No branches or pull requests

2 participants