狀況
傳送郵件時使用 Microsoft 訊息佇列和 TCP/IP 傳輸通訊協定,可能會延遲設為大約 300ms 透過網路傳送封包之前。這是因為 Windows 在 TCP/IP 堆疊會使用 Nagle 演算法。Nagle 演算法會確保有效率地使用 TCP/IP 封包,並防止網路與小型的 TCP/IP 封包被淹沒提高效能。雖然在某些情況下可能比較有利,若要允許特定的效能原因較小的封包。本文說明如何停用 TCP/IP Nagle 演算法,MSMQ 會傳送訊息時。
重要本文包含有關如何修改登錄的資訊。請確定您在修改之前,請先備份登錄。請確定您知道如何在發生問題時還原登錄。如需有關如何備份、 還原和修改登錄的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
Microsoft Windows 登錄256986說明
解決方案
注意MSMQ 2.0 (Windows 2000) 或 MSMQ 3.0 (Windows XP 和 Windows 2003),就不需要下列的 hotfix。 然而,本文 < 其他資訊=""> 一節所述的登錄值將仍需要加入。
您現在可從 Microsoft 取得,支援的 hotfix,但它只用來修正本文所描述的問題。它只適用於發生此特定問題的系統上。
若要解決這個問題,請連絡 Microsoft 產品支援服務 」 取得 hotfix。如需 Microsoft 產品支援服務電話號碼以及支援費用的相關資訊的完整清單,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support注意 在特殊的情況下,如果 Microsoft 支援專業人員認為某特定更新程式可以解決您的問題時,可能就不會收取一般因支援電話所產生的費用。收取支援費用會套用,如果有其他支援問題是,不能限定的特定更新程式。
此修正程式的英文版應該具有下列檔案屬性或更新版本:
Date Time Version Size File name Platform
-------------------------------------------------------------
6/22/1999 1:34 PM 1.00.0294 481,552 MQQM.DLL x86
狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。
Windows NT 4.0 Service Pack 6] 中,這個問題已經獲得修正。
更多的資訊
Nagle TCP/IP 演算法
TCP/IP Nagle 演算法的設計是為避免小的封包,呼叫 tinygrams,在低速網路發生問題。演算法說的 TCP/IP 連線可能已不尚未被認可的只有一個未完成小區段。"Small"的定義而有所不同,但通常定義為 「 比區段大小小於 」,這在 ethernet 上是約 1500 個位元組。
以手動方式停用 Nagle 演算法
您可以修改下列登錄設定,以及使用"啟動修改 > 一節中的指示進行,停用 Nagle 演算法。
-
在作用中計樹狀子目錄下找到下列機碼:
\Software\Microsoft\MSMQ\Parameters -
從 [編輯] 功能表中選擇 [新增機碼,並使用下列資訊:
Value Name: TcpNoDelay
DWord: 1
啟動所做的修改
佇列管理員必須停止並重新啟動後進行登錄變更。這可以完成停止並啟動 Microsoft 訊息佇列服務從 [服務] 控制台中。
參考
注意Nagle 演算法被定義在 TCP/IP RFC 896。