2011-05-21 40 views
1

我們遇到的問題是消息寫入MSMQ的速度很慢。我們的隊列在Windows Server 2008 SP2上。隊列是一個公共隊列,在「servername \ queuename」處尋址。MSMQ寫入時間大於1分鐘

的代碼將消息發送到隊列是

MessageQueue queue = new MessageQueue(Settings.Default.DefaultDestinationQueue); 
queue.Formatter = new BinaryMessageFormatter(); 

queue.Send(message); 

,我們正在嘗試發送的消息只是一個「PublishMessage」,具體如下:

[Serializable] 
public class PublishMessage { 
    public int EntryId {get; set; } 
} 

我們看到消息實際上到達隊列,但是前後記錄顯示每條消息通常超過1分鐘。

目前,我們看不到我們的隊列配置有什麼問題,但不是排隊專家 - 這是此應用程序的第一個補充。有人有主意嗎?

編輯:我們的服務器運行SP 2(不是我原來說的SP1)。在託管隊列的計算機上直接運行實例的速度很快,其他任何都不是。

注: Crossposted這在https://serverfault.com/questions/272242/msmq-write-taking-1-minute

回答

1

我們的問題原來是服務器未正確驗證的基礎設施問題。我們的系統管理員最終通過重新配置託管隊列的服務器來理清它。

0

是隊列事務性或非事務?嘗試切換此設置,看看你是否得到相同的行爲。

爲隊列分配了多少空間?嘗試增加空間,和/或將其存儲移動到不同的驅動器(在不同的物理主軸上)。

系統隊列中是否有消息?檢查系統隊列中的消息。另外,請嘗試清除系統隊列中的所有消息並重新運行。

+0

感謝您的快速repsonse - 答案:1)隊列不是交易,2)分配的空間是'無限'。根本沒有任何磁盤排隊,3)系統隊列是空的。此外,我們在SP2上,而不是1,我的錯誤。 – reallyJim 2011-05-21 16:53:30

+0

「看起來沒有任何磁盤隊列」 這些文件位於system32 \ msmq \ storage目錄中。 – 2011-05-22 23:09:49