When it comes to partitioning in an Azure Service Bus Topic, there are two properties: EnablePartitioning
and EnableSubscriptionPartitioning
.
It is very clear to me what EnablePartitioning
property does. Based on my understanding of this property, essentially when this property is set to true, the topic in question will be partitioned across multiple message brokers.
What I am not able to find is any concrete information on EnableSubscriptionPartitioning
property. The documentation
I looked at simply describes this property as:
Value that indicates whether partitioning is enabled or disabled.
Furthermore when I create a topic with this property set to true (and enable partitioning property set to false) a topic is created for me with 118784 MB
in size (MaxSizeInMegabytes
property). Here's the response XML I get when I fetch topic's properties.
<entry xml:base="https://namespace.servicebus.windows.net/$Resources/topics?api-version=2016-07">
<id>https://namespace.servicebus.windows.net/gauravtesttopic?api-version=2016-07</id>
<title type="text">gauravtesttopic</title>
<published>2017-08-18T02:00:12Z</published>
<updated>2017-08-18T02:00:18Z</updated>
<author><name>namespace</name></author>
<link rel="self" href="../gauravtesttopic?api-version=2016-07"/>
<content type="application/xml">
<TopicDescription xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<DefaultMessageTimeToLive>P10675199DT2H48M5.4775807S</DefaultMessageTimeToLive>
<MaxSizeInMegabytes>118784</MaxSizeInMegabytes>
<RequiresDuplicateDetection>false</RequiresDuplicateDetection>
<DuplicateDetectionHistoryTimeWindow>PT10M</DuplicateDetectionHistoryTimeWindow>
<EnableBatchedOperations>true</EnableBatchedOperations>
<SizeInBytes>0</SizeInBytes>
<FilteringMessagesBeforePublishing>false</FilteringMessagesBeforePublishing>
<IsAnonymousAccessible>false</IsAnonymousAccessible>
<AuthorizationRules></AuthorizationRules>
<Status>Active</Status>
<CreatedAt>2017-08-18T02:00:11.5270915Z</CreatedAt>
<UpdatedAt>2017-08-18T02:00:18.087Z</UpdatedAt>
<AccessedAt>0001-01-01T00:00:00Z</AccessedAt>
<SupportOrdering>true</SupportOrdering>
<CountDetails xmlns:d2p1="http://schemas.microsoft.com/netservices/2011/06/servicebus">
<d2p1:ActiveMessageCount>0</d2p1:ActiveMessageCount>
<d2p1:DeadLetterMessageCount>0</d2p1:DeadLetterMessageCount>
<d2p1:ScheduledMessageCount>0</d2p1:ScheduledMessageCount>
<d2p1:TransferMessageCount>0</d2p1:TransferMessageCount>
<d2p1:TransferDeadLetterMessageCount>0</d2p1:TransferDeadLetterMessageCount>
</CountDetails>
<SubscriptionCount>0</SubscriptionCount>
<AutoDeleteOnIdle>P10675199DT2H48M5.4775807S</AutoDeleteOnIdle>
<EnablePartitioning>false</EnablePartitioning>
<IsExpress>false</IsExpress>
<EntityAvailabilityStatus>Available</EntityAvailabilityStatus>
<EnableSubscriptionPartitioning>true</EnableSubscriptionPartitioning>
<EnableExpress>false</EnableExpress>
</TopicDescription>
</content>
</entry>
The problem I run with this is when I try to update the topic, I get an error message from the service complaining about invalid size. Because the topic is not partitioned, the size should be one of the following: 1GB, 2GB, 3GB, 4GB or 5GB.
Any insights into this would be highly appreciated.