2017-07-15 107 views
0

我正在從asp.net應用程序向msmq發送數據,並且它發送成功,但它在目標msmq處接收消息需要時間(數據包接收但它需要陣子5/10分鐘並不總是,但有時)asp.net msmq發送請求顯示成功,但在msmq上收到消息遲了

下面是代碼,我使用將數據發送到MSMQ

MessageQueue queue = new MessageQueue("FormatName:Direct=TCP:my_ip\private$\msmqname_name"); 
queue.Formatter = new BinaryMessageFormatter(FormatterAssemblyStyle.Simple, FormatterTypeStyle.typesWhenNeeded); 
System.Messaging.Message msg = new System.Messaging.Message(); 
msg.BodyStream = new MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes("message")); 
queue.send(msg,"LABEL"); 

注:以上代碼將數據發送到隊列中。但需要時間(5/10分鐘)。這種行爲有時並不經常發生。 可能是什麼原因?

回答

1

「發送成功」意味着消息在傳出隊列中成功創建。然後MSMQ必須通過My_IP與機器建立網絡連接來傳遞消息。傳出隊列的狀態顯示連接是否建立。

+0

那麼背後的原因是什麼?任何網絡問題?因爲我無法找出拖延的原因。並且他們正在歸咎於延遲的應用程序編碼 – Akshay

+1

您需要收集數據以確定延遲是否在發送應用程序,MSMQ-MSMQ移動跨網絡或接收應用程序。如果您啓用源日誌記錄和目標日誌記錄,則會在MSMQ周圍移動消息時顯示時間戳數據。加上結束和接收應用程序產生的時間戳,圖片應該變得更清晰。 Performance Monitor對於以圖形方式顯示隊列使用情況非常有用。網絡跟蹤對機器之間的問題很有用, –