Síntomas
Al enviar mensajes con Microsoft Message Queue y TCP/IP como protocolo de transporte, puede haber un retardo de aproximadamente 300 ms antes de que el paquete se envía a través de la red. Esto es porque la pila de TCP/IP de Windows utiliza el algoritmo de Nagle. El algoritmo de Nagle mejora el rendimiento al garantizar paquetes TCP/IP se utilizan de forma eficiente y evitar que la red se sobrecargue con pequeños paquetes TCP/IP. Aunque, en algunos casos puede ser ventajoso para permitir que los paquetes más pequeños por razones de rendimiento específicos. Este artículo describe cómo deshabilitar el algoritmo de Nagle TCP/IP cuando envía mensajes MSMQ.
Importante: Este artículo contiene información acerca de cómo modificar el registro. Asegúrese de hacer copia de seguridad del registro antes de modificarlo. Asegúrese de que sabe cómo restaurarlo si ocurre algún problema. Para obtener más información acerca de cómo hacer copia de seguridad, restaurar y modificar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:Solución
Nota: La siguiente revisión no es necesaria para MSMQ 2.0 (Windows 2000) o MSMQ 3.0 (Windows XP y Windows 2003). Sin embargo, el valor del registro que se describe en la sección "Más información" de este artículo se sigue deberá agregarse.
Ahora está disponible en Microsoft un hotfix compatible, pero sólo se diseñó para corregir el problema que describe este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Para resolver este problema, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de servicios de soporte técnico de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:http://support.microsoft.com/contactus/?ws=supportNota: En casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión. La versión en inglés de esta revisión debe tener los atributos de archivo siguientes o posteriores: Date Time Version Size File name Platform ------------------------------------------------------------- 6/22/1999 1:34 PM 1.00.0294 481,552 MQQM.DLL x86
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Este error se corrigió en el Service Pack 6 de Windows NT 4.0.Más información
El algoritmo de Nagle TCP/IP
El algoritmo de Nagle TCP/IP se diseñó para evitar problemas con paquetes pequeños, llamados tinygrams, en redes lentas. El algoritmo dice que una conexión TCP/IP puede tener sólo un segmento pequeño pendiente que no ha reconocido todavía. La definición de "pequeño" varía, pero normalmente se define como "menor que el tamaño de segmento", que en ethernet es de 1500 bytes aproximadamente.
Deshabilitar manualmente el algoritmo de Nagle
Puede deshabilitar el algoritmo de Nagle modificando la configuración del registro siguiente y siguiendo las instrucciones de la sección "Activación de la modificaciones".
-
Bajo el subárbol HKEY_LOCAL_MACHINE, busque la clave siguiente:
\Software\Microsoft\MSMQ\Parameters -
Elija Agregar clave en el menú Edición y utilice la información siguiente:
Value Name: TcpNoDelay DWord: 1
Activación de las modificaciones
El Administrador de cola debe ser detenido y reiniciado una vez realizados los cambios del registro. Esto puede conseguirse detener e iniciar el servicio Microsoft Message Queue desde el panel de control de servicios.
Referencias
Nota: El algoritmo de Nagle se define en RFC 896 de TCP/IP.