2014-08-29 156 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文檔團隊