question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Question] Is it possible to connect to partitioned topic in Azure Service Bus with AMQP.Net Lite library?

See original GitHub issue

My client .NET Core application uses AMQP.Net Lite library to work with Azure Service Bus. When the topic in the service bus namespace is NOT partitioned (Enable Partitioning is turned OFF), everything works fine - I’m able to connect and create ReceiverLink object to receive messages.

However, as soon as the topic is partitioned (Enable Partitioning is turned ON), I get the following error immediately after ReceiverLink object creation. The error description is: “Cannot open a Topic client for entity type Subscriber.

The error code translates to the AMQP map as amqp:not-allowed. According to the docs, it means “The peer tried to use a frame in a manner that is inconsistent with the semantics defined in the specification.” To be honest, I can hardly understand what it means in terms of Azure Service Bus abstractions, but it sounds depressing and similar to “not possible” to me…

On the other hand, the MS docs state that AMQP can be used to send and receive messages:

AMQP is now supported for sending and receiving messages to and from a partitioned entity.

So, the question is whether it is at all possible to use AMQP.NET Lite library to receive messages from a partitioned topic in Azure Service Bus?

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:1
  • Comments:6 (2 by maintainers)

github_iconTop GitHub Comments

3reactions
xinchen10commented, Aug 7, 2020

It should not be the case. ASB supports standard AMQP. It’s probably something missing in handling partitioned topics.

Let’s assume your topic is named “t1” and has a subscription named “s1”. There are two ways to create a receiver link.

  1. address topic directly and use the subscription name as the link name.
var r = new ReceiverLink(s, "s1", "t1");
  1. address subscription and use anything for link name.
var r = new ReceiverLink(s, "receiver", "t1/Subscriptions/s1");

Both ways work with regular topic but the first doesn’t work with partitioned topic (the second works though). It is a bug in ASB when a topic is partitioned.

1reaction
yansklyarenkocommented, Aug 7, 2020

@xinchen10 I posted the same question on StackOverflow, and @pranavq212 made an interesting note, that MS has just published the info about Amqp support last month, while Amqp.Net Lite library has its most recent release earlier. Could it be the case that the library just does not comply with the latest changes in ASB?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Is it possible to connect to partitioned topic in Azure Service ...
So, the question is whether it is at all possible to use AMQP.NET Lite library to receive messages from a partitioned topic in...
Read more >
Create partitioned Azure Service Bus queues and topics
Service Bus partitions enable queues and topics, or messaging entities, to be partitioned across multiple message brokers and messaging stores.
Read more >
Is it possible to connect to partitioned ... - appsloveworld.com
Coding example for the question Is it possible to connect to partitioned topic in Azure Service Bus with AMQP.Net Lite library?
Read more >
Enable partitioning in Azure Service Bus basic or standard
This article explains how to enable partitioning in Azure Service Bus queues and topics by using Azure portal, PowerShell, CLI, ...
Read more >
Azure Service Bus frequently asked questions (FAQ)
This article provides answers to some of the frequently asked questions (FAQ) about Azure Service Bus.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found