2014-08-29 123 views
2

我想打一个分区队列和我一直在阅读这个网站:http://msdn.microsoft.com/en-us/library/azure/dn520246.aspxAzure的服务总线AutoDeleteOnIdle

在目前的实施,服务总线规定了分区队列和主题以下限制:

  • 分区的队列或主题不启用空闲时的自动删除。如果发生以下任何情况,服务总线将返回InvalidOperationException:
    • 您尝试创建一个队列,其中Microsoft.ServiceBus.Messaging.QueueDescription.AutoDeleteOnIdle和Microsoft.ServiceBus.Messaging.QueueDescription.EnablePartitioning属性都设置为真正。

AutoDeleteOnIdle是一个时间跨度。他们是否意味着另一个物业或者我将TimeSpan设置为0或-1刻度?根据http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.queuedescription.autodeleteonidle.aspx,最短时间为5分钟。无论如何,我并不寻找任何自动删除功能。我应该忽略它吗?

public static void CreateQueueIfNotExist(string queueName) 
{ 
    if (namespaceManager == null) 
     namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString); 
    if (!namespaceManager.QueueExists(queueName)) 
    { 
     QueueDescription qDescription = new QueueDescription(queueName); 
     qDescription.DefaultMessageTimeToLive = new TimeSpan(14, 0, 0, 0); 
     qDescription.LockDuration = new TimeSpan(0, 5, 0); 
     qDescription.EnablePartitioning = true; 
     qDescription.RequiresDuplicateDetection = false; 
     qDescription.AutoDeleteOnIdle = ???????????; // TODO 
     namespaceManager.CreateQueue(qDescription); 
    } 
} 

回答

2

它似乎只是文档中的错误。如果您在创建队列描述时未指定属性,则不应该有任何问题。

我会确保正确的人参阅文档问题。 :)

3

谢谢你抓住这个!我会确保文档已更新。我已经向开发团队证实,如果AutoDeleteOnIdle设置为任何值(并且EnablePartitioning为TRUE),您将会得到异常。

--Seth曼海姆

微软Azure文档团队