Symptome
Beim Senden von Nachrichten mit Microsoft Message Queue und TCP/IP als Transportprotokoll kann es zu einer Verzögerung von etwa 300 ms kommen, bevor das Paket über das Netzwerk gesendet wird. Dies liegt daran, dass der Windows-TCP/IP-Stapel den Nagle-Algorithmus verwendet. Der Nagle-Algorithmus verbessert die Leistung, indem er sicherstellt, dass TCP/IP-Pakete effizient verwendet werden und verhindert, dass das Netzwerk mit kleinen TCP/IP-Paketen überflutet wird. In einigen Szenarien kann es jedoch vorteilhaft sein, kleinere Pakete aus bestimmten Leistungsgründen zuzulassen. In diesem Artikel wird beschrieben, wie Sie den Nagle-TCP/IP-Algorithmus deaktivieren, wenn MSMQ Nachrichten sendet.
Wichtig Dieser Artikel enthält Informationen zum Bearbeiten der Registrierung. Stellen Sie sicher, dass Sie die Registrierung sichern, bevor Sie sie ändern. Stellen Sie sicher, dass Sie wissen, wie Sie die Registrierung wiederherstellen, falls ein Problem auftreten sollte. Weitere Informationen zum Erstellen einer Sicherungskopie, zum Wiederherstellen und Bearbeiten der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
256986 Beschreibung der Microsoft Windows-Registrierung
Lösung
Hinweis Der folgende Hotfix ist für MSMQ 2.0 (Windows 2000) oder MSMQ 3.0 (Windows XP und Windows 2003) nicht erforderlich. Der Registrierungswert, der im Abschnitt "Weitere Informationen" dieses Artikels erläutert wird, muss jedoch weiterhin hinzugefügt werden.
Ein unterstützter Hotfix ist jetzt von Microsoft verfügbar, aber er dient nur dazu, das in diesem Artikel beschriebene Problem zu beheben. Wenden Sie sie nur auf Systeme an, bei denen dieses spezifische Problem auftritt.
Wenden Sie sich an den Microsoft-Produktsupport, um den Hotfix zu erhalten, um dieses Problem zu beheben. Eine vollständige Liste der Microsoft-Produktsupport-Telefonnummern und Informationen zu Den Supportkosten finden Sie auf der folgenden Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support Hinweis In Sonderfällen können Gebühren, die normalerweise für Supportanrufe anfallen, storniert werden, wenn ein Microsoft-Support Professional feststellt, dass ihr Problem durch ein bestimmtes Update behoben wird. PLEASE DO NOT TRANSLATE. DOES NOT APPLY TO GERMAN.
Die englische Version dieses Fixs sollte die folgenden Dateiattribute oder höher aufweisen:
Datum/Uhrzeit Versionsgröße Dateiname Plattform
-------------------------------------------------------------
22.06.1999 13:34 Uhr 13.00.0294 481.552 MQQM.DLL x86
Status
Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.
Dieser Fehler wurde in Windows NT 4.0 Service Pack 6 behoben.
Weitere Informationen
Der Nagle-TCP/IP-Algorithmus
Der Nagle TCP/IP-Algorithmus wurde entwickelt, um Probleme mit kleinen Paketen, sogenannten Tinygrams, in langsamen Netzwerken zu vermeiden. Der Algorithmus sagt, dass eine TCP/IP-Verbindung nur ein ausstehendes kleines Segment aufweisen kann, das noch nicht bestätigt wurde. Die Definition von "small" variiert, aber in der Regel wird sie als "kleiner als die Segmentgröße" definiert, die auf Ethernet etwa 1500 Bytes beträgt.
Manuelles Deaktivieren des Nagle-Algorithmus
Sie können den Nagle-Algorithmus deaktivieren, indem Sie die folgende Registrierungseinstellung ändern und die Anweisungen im Abschnitt "Aktivieren der Änderungen" verwenden.
Suchen Sie unter der Unterstruktur HKEY_LOCAL_MACHINE den folgenden Schlüssel:
\Software\Microsoft\MSMQ\Parameters
Wählen Sie im Menü Bearbeiten die Option Schlüssel hinzufügen aus, und verwenden Sie die folgenden Informationen:
Wertname: TcpNoDelay
DWord: 1
Aktivieren der Änderungen
Der Warteschlangen-Manager muss beendet und neu gestartet werden, nachdem die Registrierungsänderungen vorgenommen wurden. Dies kann erreicht werden, indem Sie den Microsoft Message Queue Service über die Systemsteuerung der Dienste beenden und starten.
Referenzmaterial
Hinweis Der Nagle-Algorithmus ist in TCP/IP RFC 896 definiert.