อาการ
เมื่อส่งข้อความพร้อมกับคิวข้อความ Microsoft และ TCP/IP เป็นโพรโทคอลในการขนส่ง อาจมีการหน่วงเวลาของประมาณ 300ms ก่อนแพ็คเก็ตถูกส่งผ่านเครือข่าย ที่เป็นเช่นนี้เนื่องจากสแต็ค TCP/IP ใน Windows ใช้อัลกอริทึม Nagle อัลกอริทึม Nagle เพิ่มประสิทธิภาพ โดยการรับประกันใช้แพ็คเก็ต TCP/IP ได้อย่างมีประสิทธิภาพ และป้องกันเครือข่ายจากกำลัง flooded กับแพ็คเก็ต TCP/IP ขนาดเล็ก ถึงแม้ว่า ในบางสถานการณ์ อาจเป็นประโยชน์เมื่อต้องการอนุญาตให้มีแพคเก็ตมีขนาดเล็กกว่าเหตุผลด้านประสิทธิภาพการทำงานเฉพาะ บทความนี้อธิบายถึงวิธีการปิดการใช้งานอัลกอริทึม Nagle TCP/IP เมื่อ MSMQ จะส่งข้อความ
สิ่งสำคัญ บทความนี้ประกอบด้วยข้อมูลเกี่ยวกับวิธีการปรับเปลี่ยนรีจิสทรี ตรวจสอบให้แน่ใจว่าได้สำรองรีจิสทรีก่อนที่จะแก้ไข ตรวจสอบให้แน่ใจว่า คุณทราบวิธีการคืนค่ารีจิสทรีหากเกิดปัญหา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูล เรียกคืน และการปรับเปลี่ยนรีจิสทรี คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
256986คำอธิบายของรีจิสทรีของ Microsoft Windows
การแก้ปัญหา
หมายเหตุ โปรแกรมแก้ไขด่วนต่อไปนี้ไม่จำเป็นต้องใช้สำหรับ MSMQ 2.0 (Windows 2000) หรือ MSMQ 3.0 (Windows XP และ Windows 2003) อย่างไรก็ตาม ค่ารีจิสทรีที่อธิบายไว้ในส่วน "ข้อมูลเพิ่มเติม" ของบทความนี้จะยังคงต้องใช้ที่จะเพิ่มขึ้น
สามารถโหลด hotfix ได้แล้วจาก Microsoft แต่มีเป้าหมายเพียงเพื่อการแก้ไขปัญหาที่อธิบายไว้ในบทความนี้ นำวิธีนี้ไปใช้กับระบบที่ประสบกับปัญหาที่เฉพาะเจาะจงเท่านั้น
เมื่อต้องการแก้ไขปัญหานี้ ติดต่อบริการสนับสนุนผลิตภัณฑ์ของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน สำหรับรายชื่อทั้งหมดของหมายเลขโทรศัพท์ของบริการการสนับสนุนผลิตภัณฑ์ของ Microsoft และข้อมูลเกี่ยวกับค่าใช้จ่ายสนับสนุน แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://support.microsoft.com/contactus/?ws=supportหมายเหตุ ในกรณีพิเศษ ค่าบริการที่เรียกเก็บตามปกติเมื่อโทรติดต่อฝ่ายสนับสนุนอาจจะยกเลิกได้หาก Microsoft Support Professional ตัดสินว่าโปรแกรมปรับปรุงที่เฉพาะเจาะจงจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนตามปกติจะใช้กับคำถามและปัญหาในการสนับสนุนเพิ่มเติมซึ่งไม่สอดคล้องตามเกณฑ์สำหรับโปรแกรมปรับปรุงเฉพาะที่เกี่ยวข้อง
เวอร์ชันภาษาอังกฤษของโปรแกรมแก้ไขนี้ควรมีแอตทริบิวต์ของแฟ้มต่อไปนี้ หรือใหม่กว่า:
Date Time Version Size File name Platform
-------------------------------------------------------------
6/22/1999 1:34 PM 1.00.0294 481,552 MQQM.DLL x86
สถานะ
Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"
บักนี้ถูกแก้ไขใน 6 ของ Service Pack 4.0 Windows NT
ข้อมูลเพิ่มเติม
อัลกอริทึมการ TCP/IP Nagle
อัลกอริทึม Nagle TCP/IP ถูกออกแบบมาเพื่อหลีกเลี่ยงปัญหาเกี่ยวกับแพคเก็ตขนาดเล็ก เรียก tinygrams บนเครือข่ายที่ช้า อัลกอริทึมระบุว่า การเชื่อมต่อ TCP/IP สามารถมีส่วนขนาดเล็กคงค้างเดียวเท่านั้นที่ไม่ได้ถูกยอมรับ คำนิยามของ "เล็ก" ที่แตกต่างกันไป แต่โดยปกติแล้วจะมีการกำหนดไว้เป็น "น้อยกว่าขนาดเซ็กเมนต์" ซึ่งบนอีเทอร์เน็ตคือประมาณ 1500 ไบต์
อัลกอริทึม Nagle การที่ปิดใช้งานด้วยตนเอง
คุณสามารถปิดการใช้งานอัลกอริทึม Nagle ได้ โดยการปรับเปลี่ยนการตั้งค่ารีจิสทรีต่อไปนี้ และใช้คำแนะนำในส่วน "การเรียกใช้ตัวปรับเปลี่ยน"
-
ภายใต้ทรีย่อย HKEY_LOCAL_MACHINE หาคีย์ต่อไปนี้:
\Software\Microsoft\MSMQ\Parameters -
เลือกคีย์ที่เพิ่มจากเมนูแก้ไขและใช้ข้อมูลต่อไปนี้:
Value Name: TcpNoDelay
DWord: 1
เปิดใช้งานการแก้ไข
โปรแกรมจัดการคิวต้องหยุด และเริ่มระบบใหม่หลังจากที่ได้ทำการเปลี่ยนแปลงรีจิสทรี ซึ่งสามารถทำให้สำเร็จได้ โดยการหยุด และเริ่มต้นบริการคิวข้อความของ Microsoft จากบริการใน'แผงควบคุม'
ข้อมูลอ้างอิง
หมายเหตุ อัลกอริทึม Nagle ถูกกำหนดใน TCP/IP RFC 896