Symptomen
Bij het verzenden van berichten met Microsoft Message Queue en TCP/IP als transportprotocol, kan er een vertraging van ongeveer 300ms voordat het pakket wordt verzonden via het netwerk. Dit komt doordat de Nagle-algoritme wordt gebruikt door de Windows TCP/IP-stack. Het algoritme Nagle verbetert de prestaties door ervoor te zorgen dat de TCP/IP-pakketten worden efficiënt gebruikt en voorkomen dat het netwerk wordt overstroomd met kleine TCP/IP-pakketten. Hoewel in sommige gevallen de kleinere pakketten om specifieke redenen de voorkeur wordt. In dit artikel wordt beschreven hoe het algoritme Nagle TCP/IP uit te schakelen als MSMQ berichten worden verzonden.
Belangrijk Dit artikel bevat informatie over het wijzigen van het register. Zorg ervoor dat u een back-up van het register voordat u aanbrengt wijzigingen. Zorg ervoor dat u weet hoe u het register kunt herstellen als er een probleem optreedt. Voor meer informatie over hoe u een back-up, herstellen en aanpassen van het register, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base:
256986 beschrijving van het Microsoft Windows-register
Oplossing
Opmerking De volgende hotfix is niet nodig voor MSMQ 2.0 (Windows 2000) of MSMQ 3.0 (Windows XP en Windows 2003). De registerwaarde die wordt beschreven in de sectie 'Meer informatie' van dit artikel wordt echter nog steeds moet worden toegevoegd.
Een ondersteunde hotfix is nu beschikbaar bij Microsoft, maar is alleen bedoeld voor het probleem dat in dit artikel wordt beschreven. Pas deze alleen toe op systemen waarop dit specifieke probleem zich voordoet.
U lost dit probleem, neem contact op met Microsoft Product Support Services om de hotfix te verkrijgen. Voor een volledige lijst met telefoonnummers van Microsoft Product Support Services en informatie over kosten van ondersteuning vindt u op de volgende Microsoft-website:
http://support.microsoft.com/contactus/?ws=supportOpmerking In speciale gevallen kunnen kosten die normaal aan ondersteuningsoproepen verbonden zijn, worden geannuleerd als een medewerker van Microsoft productondersteuning van mening is dat een specifieke update de oplossing van uw probleem is. De normale ondersteuningskosten blijven gelden voor extra ondersteuningsvragen die niet in aanmerking voor de specifieke update in kwestie komen.
De Engelse versie van deze correctie moet de volgende bestandskenmerken hebben of later:
Date Time Version Size File name Platform
-------------------------------------------------------------
6/22/1999 1:34 PM 1.00.0294 481,552 MQQM.DLL x86
Status
Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Deze fout is gecorrigeerd in Windows NT 4.0 Service Pack 6.
Meer informatie
Het algoritme van de TCP/IP-Nagle
De TCP/IP-Nagle-algoritme is ontworpen om problemen met kleine pakketten, tinygrams, genoemd in langzame netwerken te voorkomen. Het algoritme zegt dat slechts één uitstaande klein segment dat nog niet bevestigd door een TCP/IP-verbinding kan hebben. De definitie van 'klein' varieert, maar meestal deze als "lager zijn dan de segmentgrootte", die is gedefinieerd op ethernet is ongeveer 1500 bytes.
Het algoritme Nagle handmatig uit te schakelen
Het algoritme Nagle kunt u uitschakelen door de volgende registerinstelling wijzigen en volgens de aanwijzingen in de sectie 'De wijzigingen activeren'.
-
Zoeken onder de substructuur HKEY_LOCAL_MACHINE naar de volgende sleutel:
\Software\Microsoft\MSMQ\Parameters -
Kies sleutel toevoegen in het menu bewerken en gebruik de volgende informatie:
Value Name: TcpNoDelay
DWord: 1
De wijzigingen te activeren
De wachtrijbeheerder moet worden gestopt en opnieuw gestart nadat het register is gewijzigd. Dit kunt u doen door te stoppen en de Microsoft Message Queue-Service starten vanuit services in het Configuratiescherm.
Referenties
Opmerking Het algoritme Nagle is gedefinieerd in RFC 896 van TCP/IP.