คำอธิบายเกี่ยวกับการตั้งค่า TCP/IP ที่คุณอาจจำเป็นต้องปรับปรุงเมื่อมีการทำพูลเก็บการเชื่อมต่อ SQL Server ถูกปิดใช้งาน

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:328476
สรุป
เมื่อคุณใช้โปรแกรมควบคุม ODBC ของ SQL Server, SQL Server OLE DB provider หรือผู้ให้บริการที่มีการจัดการ System.Data.SqlClient คุณสามารถปิดใช้งานการเชื่อมต่อร่วมกันโดยแอพลิเคชันที่เกี่ยวข้องเฟซการเขียนโปรแกรม) เมื่อคุณปิดใช้งานการทำพูลเก็บ ความเค้นบนไลบรารีเครือข่ายของ SQL Server อยู่ภายใต้อาจจะเพิ่มขึ้นถ้าโปรแกรมประยุกต์ของคุณมักเปิด และปิดการเชื่อมต่อ บทความนี้อธิบายการตั้งค่า TCP/IP บางอย่างที่คุณอาจจำเป็นต้องปรับปรุงภายใต้เงื่อนไขเหล่านี้
ข้อมูลเพิ่มเติม
การปิดการทำพูลเก็บอาจทำให้ไดรเวอร์เครือข่าย SQL Server อยู่ภายใต้การเปิด และปิดการเชื่อมต่อซ็อกเก็ตใหม่ไปยังคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server อย่างรวดเร็ว คุณอาจต้องเปลี่ยนการตั้งค่าการซ็อกเก็ต TCP/IP ค่าเริ่มต้นสำหรับระบบปฏิบัติการและคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server เพื่อจัดการกับระดับความเค้นสูงกว่า

โปรดสังเกตว่า บทความนี้อธิบายการตั้งค่าที่ส่งผลต่อไลบรารีเครือข่ายของ SQL Server เมื่อคุณใช้โพรโทคอล TCP/IP เท่านั้น การปิดการทำพูลเก็บทำให้เกิดปัญหาความเค้นที่เกี่ยวข้องกับโพรโทคอลอื่น ๆ เซิร์ฟเวอร์ SQL เช่นไปป์ที่ระบุชื่อ แต่บทความนี้ไม่ได้กล่าวถึงหัวข้อนี้ บทความนี้มีไว้สำหรับผู้ใช้ขั้นสูงเท่านั้น หากคุณไม่เข้าใจหัวข้อในบทความนี้ Microsoft แนะนำว่า คุณดูหนังสือดีเกี่ยวกับ TCP/IP sockets

โปรดสังเกตว่า Microsoft ขอแนะนำว่า คุณจะใช้ร่วมกับไดรเวอร์ของ SQL Server ใช้ร่วมกันอย่างมากช่วยปรับปรุงประสิทธิภาพโดยรวมบนฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ SQL เมื่อคุณใช้ไดรเวอร์ของ SQL Server ใช้ร่วมกันอย่างมากนอกจากนี้ลดปริมาณการใช้งานเครือข่ายไปยังคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server ตัวอย่างเช่น การทดสอบตัวอย่างที่ใช้ 20000 SQL Server เชื่อมต่อเปิด และปิด โดยการเปิดใช้งานการทำพูลเก็บ ใช้แพคเก็ตเครือข่าย TCP/IP ประมาณ 160 สำหรับผลรวมของไบต์ 23,520 ของกิจกรรมของเครือข่าย ด้วยการทำพูลเก็บการปิดการใช้งาน การทดสอบตัวอย่างเดียวกันที่สร้างขึ้น 225,129 TCP/IP แพ็คเกจเครือข่าย สำหรับผลรวมของไบต์ 27,209,622 ของกิจกรรมของเครือข่าย

หมายเหตุว่า เมื่อคุณเห็นปัญหาซ็อกเก็ต TCP/IP ที่เกี่ยวข้องกับความเค้นกับไลบรารีเครือข่าย SQL Server คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้อย่างน้อยหนึ่งเมื่อคุณพยายามเชื่อมต่อไปยังคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server:
ไม่มีเซิร์ฟเวอร์ SQL หรือการเข้าถึงถูกปฏิเสธ
การหมดเวลาหมดอายุ
ข้อผิดพลาดของเครือข่ายทั่วไป
TCP ผู้ให้บริการ: การใช้งานเพียงหนึ่งของแต่ละที่อยู่ซ็อกเก็ต (โพรโทคอล/พอร์ตเครือข่ายที่อยู่ /) เป็นปกติได้
หมายเหตุว่า คุณยังสามารถรับข้อความแสดงข้อผิดพลาดเฉพาะเหล่านี้เมื่อปัญหาอื่น ๆ จะเกิดขึ้นกับ SQL Server ตัวอย่างเช่น คุณอาจได้รับข้อความแสดงข้อผิดพลาดเหล่านี้ ถ้าคอมพิวเตอร์ระยะไกลที่กำลังเรียกใช้ SQL Server ถูกปิด ถ้าคอมพิวเตอร์ระยะไกลที่กำลังเรียกใช้ SQL Server ไม่ฟัง TCP/IP sockets เลย ถ้ามีการเชื่อมต่อเครือข่ายไปยังคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server จะใช้งานไม่ได้เนื่องจากสายเคเบิลเครือข่ายจะถูกดึงออกมา หรือ ถ้าคุณมีปัญหาเกี่ยวกับการแก้ปัญหา DNS โดยปกติแล้วสิ่งที่อาจทำให้เกิดการไคลเอ็นต์ล้มเหลวเมื่อต้องการเปิดซ็อกเก็ต TCP/IP ไปยังคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server สามารถทำให้เกิดข้อผิดพลาด อย่างไรก็ตาม กับประเด็นที่เกี่ยวข้องกับความเค้นซ็อกเก็ต เกิดปัญหาขึ้นเป็นระยะ ๆ ขณะความเค้น rises และอยู่ คอมพิวเตอร์อาจใช้เวลาสักชั่วโมงที่ไม่มีข้อผิดพลาด จาก นั้นข้อผิดพลาดเกิดขึ้นครั้งหนึ่ง หรือสอง และคอมพิวเตอร์จาก นั้นเรียกใช้สำหรับหลายชั่วโมงขึ้นไป มีข้อผิดพลาดไม่ นอกจากนี้ เมื่อคุณมีปัญหานี้ ทั่วไปเชื่อมต่อกับ SQL Server ทำงานโต้ตอบแบบทันทีหนึ่ง ล้มเหลวถัดไป แล้วทำงานแบบโต้ตอบแบบทันทีถัดไปอีกใหม่ อีกนัยหนึ่ง การตัดสินค้าจากคลังที่เกี่ยวข้องกับความเค้นซ็อกเก็ตโดยทั่วไปเกิดขึ้น sporadically แต่จริงปัญหาการเชื่อมต่อเครือข่ายกับ SQL Server โดยทั่วไปจะไม่เกิดขึ้น sporadically

สองหลักที่เกี่ยวข้องกับความเค้นปัญหาโดยทั่วไปจะเกิดขึ้นเมื่อคุณปิดการใช้งานร่วมกันในขณะที่คุณใช้โพรโทคอล TCP/IP ของเซิร์ฟเวอร์ SQL: คุณอาจไม่เพียงพอพอร์ตแบบไม่ระบุชื่อบนคอมพิวเตอร์ไคลเอนต์ หรือคุณอาจมีเกินWinsockListenBacklogเริ่มต้นการตั้งค่าบนคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพอร์ตแบบไม่ระบุชื่อ คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
319502 PRB: 'WSAEADDRESSINUSE' ข้อผิดพลาดเมื่อคุณพยายามเชื่อมต่อผ่านพอร์ตไม่ระบุชื่อหลังจากที่คุณเพิ่มขีดจำกัดการเชื่อมต่อ IMAP

ปรับการตั้งค่า MaxUserPort และ TcpTimedWaitDelay

โปรดสังเกตว่าการตั้งค่าMaxUserPortและTcpTimedWaitDelayจะใช้ได้เฉพาะกับคอมพิวเตอร์แบบไคลเอ็นต์ที่จะเปิดอย่างรวดเร็ว และปิดการเชื่อมต่อกับคอมพิวเตอร์ระยะไกลที่กำลังเรียกใช้ SQL Server และ กำลังใช้การเชื่อมต่อร่วมกัน ตัวอย่างเช่น การตั้งค่าเหล่านี้จะใช้ได้บนเซิร์ฟเวอร์ Internet Information Services (IIS) ที่กำลังให้บริการคำขอ HTTP เข้ามาเป็นจำนวนมาก และที่จะเปิด และปิดการเชื่อมต่อกับคอมพิวเตอร์ระยะไกลที่กำลังเรียกใช้ SQL Server และที่ใช้โพรโทคอล TCP/IP ด้วยการปิดใช้งานการทำพูลเก็บ ถ้าร่วมกันถูกเปิดใช้งาน ไม่ได้ปรับการตั้งค่าMaxUserPortและTcpTimedWaitDelay

เมื่อคุณใช้โพรโทคอล TCP/IP เพื่อเปิดการเชื่อมต่อไปยังคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server ไลบรารีเครือข่ายของ SQL Server อยู่ภายใต้เปิดซ็อกเก็ต TCP/IP ไปยังคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server เมื่อเปิดซ็อกเก็ตนี้ ไลบรารีเครือข่ายของ SQL Server เปิดใช้งานตัวเลือกของซ็อกเก็ต TCP/IP ที่SO_REUSEADDR สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าของซ็อกเก็ตSO_REUSEADDRดูหัวข้อ "ระดับ" ใน Microsoft Developer Network (MSDN)

โปรดสังเกตว่า ไลบรารีเครือข่ายของ SQL Server โดยเฉพาะไม่เปิดใช้งานตัวเลือกของซ็อกเก็ตSO_REUSEADDR TCP/IP สำหรับเหตุผลด้านความปลอดภัย เมื่อเปิดใช้งานSO_REUSEADDRผู้ใช้ที่มีเจตนาร้ายสามารถ hijack พอร์ตไคลเอนต์กับ SQL Server และใช้ข้อมูลประจำตัวที่ให้ไคลเอนต์การเข้าถึงคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server โดยค่าเริ่มต้น เนื่องจากไลบรารีเครือข่ายของ SQL Server ไม่เปิดใช้งานตัวเลือกซ็อกเก็ตSO_REUSEADDRทุกครั้งที่คุณเปิด และปิดซ็อกเก็ตโดยใช้ไลบรารีเครือข่ายของ SQL Server บนฝั่งไคลเอ็นต์ ซ็อกเก็ตเข้าสู่สถานะ TIME_WAIT สี่นาที ถ้าคุณได้อย่างรวดเร็วเปิดและปิดการเชื่อมต่อ SQL Server ผ่าน TCP/IP ด้วยการปิดใช้งานการทำพูลเก็บ คุณได้อย่างรวดเร็วเปิด และปิด TCP/IP sockets อีกนัยหนึ่ง แต่ละการเชื่อมต่อ SQL Server มีการซ็อกเก็ต TCP/IP หนึ่งสอง ถ้าคุณเปิดอย่างรวดเร็ว และปิด 4000 sockets ในน้อยกว่า 4 นาที คุณจะไปถึงการตั้งค่าเริ่มต้นสูงสุดสำหรับพอร์ตแบบไม่ระบุชื่อของไคลเอนต์ และความพยายามในการเชื่อมต่อซ็อกเก็ตใหม่ล้มเหลวจนกว่าจะมี ชุดที่มีอยู่ของ TIME_WAIT sockets หมดเวลา

บนฝั่งไคลเอ็นต์ คุณอาจจะต้องเพิ่มการตั้งค่าMaxUserPortและTcpTimedWaitDelayที่มีการกล่าวถึงใน Q319502 เมื่อคุณได้ปิดการใช้งานร่วมกัน การตั้งค่าสำหรับค่าเหล่านี้จะถูกกำหนด โดยจำนวนการเชื่อมต่อ SQL Server เปิดและปิดเกิดขึ้นบนฝั่งไคลเอ็นต์ คุณสามารถตรวจสอบพอร์ตไคลเอนต์กี่อยู่ในสถานะ TIME_WAIT โดยใช้เครื่องมือ Netstat บนคอมพิวเตอร์ไคลเอนต์ เรียกใช้เครื่องมือ Netstat ด้วยค่าสถานะ-nดังนี้ และนับจำนวน sockets ไคลเอ็นต์ไปยังที่อยู่ IP ของเซิร์ฟเวอร์ SQL ของคุณที่อยู่ในสถานะ TIME_WAIT ในตัวอย่างนี้ อยู่ IP ของคอมพิวเตอร์ระยะไกลที่กำลังเรียกใช้ SQL Server คือ 10.10.10.20 อยู่ IP ของคอมพิวเตอร์ไคลเอนต์คือ 10.10.10.10 และสามสร้างการเชื่อมต่อและเชื่อมต่อสองอยู่ในสถานะ TIME_WAIT:
C:\>netstat -nActive Connections  Proto  Local Address         Foreign Address       State  TCP    10.10.10.10:2000      10.10.10.20:1433      ESTABLISHED  TCP    10.10.10.10:2001      10.10.10.20:1433      ESTABLISHED  TCP    10.10.10.10:2002      10.10.10.20:1433      ESTABLISHED  TCP    10.10.10.10:2003      10.10.10.20:1433      TIME_WAIT  TCP    10.10.10.10:2004      10.10.10.20:1433      TIME_WAIT				
หากคุณรันการnetstat - nและคุณเห็นว่า ใกล้เคียงกับการเชื่อมต่อเสมือน 4000 ที่อยู่ของปลายทางคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server อยู่ในสถานะ TIME_WAIT ทั้งเพิ่มการตั้งค่าการเริ่มต้นMaxUserPortและคุณลดการตั้งค่าTcpTimedWaitDelayเพื่อให้คุณทำงานจากไคลเอนต์พอร์ตที่ไม่ระบุชื่อ ตัวอย่างเช่น คุณสามารถตั้งค่าการตั้งค่าMaxUserPortเป็น 20000 และตั้งค่าการตั้งค่าTcpTimedWaitDelayเป็น 30 การตั้งค่าTcpTimedWaitDelayต่ำกว่าหมายความ ว่า sockets ที่รอในสถานะ TIME_WAIT เวลาน้อยลง การตั้งค่าMaxUserPortสูงกว่าซึ่งหมายความ ว่า คุณสามารถมี sockets เพิ่มเติมในสถานะ TIME_WAIT

โปรดสังเกตว่า หากคุณปรับการตั้งค่าMaxUserPortหรือTcpTimedWaitDelayคุณต้องเริ่มการทำงาน Microsoft Windows สำหรับการตั้งค่าใหม่มีผลบังคับใช้ การตั้งค่าMaxUserPortและTcpTimedWaitDelayสำหรับคอมพิวเตอร์ไคลเอ็นต์ที่มีการพูดคุยกับคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server ผ่าน TCP/IP sockets ได้ การตั้งค่าเหล่านี้ไม่มีผลใด ๆ ถ้ามีการตั้งค่าบนคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server นอกจากว่าคุณกำลังทำการเชื่อมต่อซ็อกเก็ต TCP/IP ภายในเครื่องไปยังคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server

หมายเหตุ ถ้าคุณปรับการตั้งค่าMaxUserPortเราขอแนะนำว่า คุณควรจองพอร์ต 1434 สำหรับใช้ โดยบริการ SQL Server Browser (sqlbrowser.exe) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำเช่นนี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
812873 วิธีการจองช่วงของพอร์ตข้อมูลแบบชั่วคราวบนคอมพิวเตอร์ที่กำลังเรียกใช้ Windows Server 2003 หรือ Windows 2000 Server

ปรับการตั้งค่า WinsockListenBacklog

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่ารีจิสทรีเฉพาะของ SQL Server นี้ คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
154628 INF: บันทึก SQL 17832 กับการร้องขอการเชื่อมต่อ TCP\IP หลาย
เมื่อไลบรารีเครือข่ายของ SQL Server ฟังบน TCP/IP sockets ไลบรารีเครือข่ายของ SQL Server ใช้การฟังWinsock API พารามิเตอร์ตัวสองสำหรับการฟังAPI คือ ยอดคงค้างที่ได้รับอนุญาตสำหรับซ็อกเก็ต ยอดคงค้างนี้แสดงถึงความยาวสูงสุดของคิวการรอการเชื่อมต่อสำหรับการตัวฟัง เมื่อความยาวของคิวเกินความยาวสูงสุด ไลบรารีเครือข่ายของ SQL Server ทันทีปฏิเสธความพยายามเชื่อมต่อซ็อกเก็ต TCP/IP เพิ่มเติม นอกจากนี้ ไลบรารีเครือข่ายของ SQL Server ส่งแพ็คเก็ตระดาษ + ใหม่

ใช้ SQL Server 2000 เป็นค่าเริ่มต้นให้ฟังตั้งรายการคงค้างของ 5 ครั้ง ซึ่งหมายความ ว่า คอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server ส่งผ่านค่า 5 กับพารามิเตอร์ยอดคงค้างของการฟังWinsock API เมื่อ APIฟังต้องตั้งค่าโพรโทคอล TCP/IP ฟังเธรดบนคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server คุณสามารถปรับเปลี่ยนรีจิสทรีคีย์ WinsockListenBacklog เพื่อระบุค่าแตกต่างกันจะส่งผ่านไปสำหรับพารามิเตอร์นี้ เริ่มต้นใน SQL Server 2005 ไลบรารีเครือข่ายส่งผ่านค่าของ SOMAXCONN เป็นการตั้งค่ารายการคงค้างเพื่อฟังAPI SOMAXCONN ช่วยให้ผู้ให้บริการ Winsock เพื่อตั้งค่าสูงสุดที่เหมาะสมสำหรับการตั้งค่านี้ ดังนั้น คีย์รีจิสทรี WinsockListenBacklog จะไม่ใช้ หรือจำเป็นต้องใช้ใน SQL Server 2005

ยอดคงค้างการตั้งค่าการทำงานดังนี้: สมมติว่าเป็นการฟังบริการกำหนดสำหรับการร้องขอการซ็อกเก็ต TCP/IP ขาเข้า ถ้าคุณตั้งค่าการตั้งค่ารายการคงค้างเป็น 5 และร้องขอการเชื่อมต่อซ็อกเก็ตจำนวนมากจะส่งกระแสข้อมูลในอย่างต่อเนื่อง การบริการอาจไม่สามารถตอบสนองต่อการร้องขอขาเข้าที่รวดเร็วที่เกิดใน ณจุดนี้ เลเยอร์ของซ็อกเก็ต TCP/IP คิวคำขอขาเข้าในคิวรายการงานค้าง และบริการสามารถดึงคำขอออกจากคิวนี้ และจัดการการร้องขอการเชื่อมต่อซ็อกเก็ตเข้ามาในภายหลัง หลังจากที่คิวเต็ม เลเยอร์ของซ็อกเก็ต TCP/IP ทันทีไม่ยอมรับการร้องขอใด ๆ เพิ่มเติมซ็อกเก็ตที่เข้ามา โดยการส่งแพคเก็ตระดาษ + ใหม่กลับไปยังไคลเอนต์ เพิ่มเพิ่มขนาดคิวรายการคงค้างที่จำนวนที่ค้างอยู่รอการเชื่อมต่อซ็อกเก็ตที่ร้องขอเลเยอร์ของซ็อกเก็ต TCP/IP คิวก่อนที่ร้องขอถูกปฏิเสธ

โปรดสังเกตว่า การตั้งค่าWinsockListenBacklogเป็นข้อมูลเฉพาะกับ SQL Server SQL Server พยายามอ่านการตั้งค่ารีจิสทรีนี้เมื่อบริการ SQL Server เริ่มต้นครั้งแรก ถ้าไม่มีการตั้งค่า ไม่มีใช้ค่าเริ่มต้นของ 5 ถ้าการตั้งค่ารีจิสทรีที่มีอยู่ SQL Server อ่านการตั้งค่า และใช้ค่าให้มาเป็นการตั้งค่ารายการคงค้างเมื่อ WinSock API ฟังจะเรียกว่าเป็นซ็อกเก็ต TCP/IP ฟังเธรดจะถูกตั้งค่าภายใน SQL Server

เพื่อตรวจสอบว่า คุณกำลังเรียกใช้เป็นปัญหานี้ คุณสามารถเรียกใช้การติดตามการตรวจสอบเครือข่ายบนไคลเอนต์หรือคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server และค้นหาคำขอเชื่อมต่อซ็อกเก็ตที่จะถูกปฏิเสธ ด้วยผิดระดาษ + ใหม่ได้ทันที ถ้าคุณตรวจสอบแพ็คเก็ต TCP/IP ในตัวตรวจสอบเครือข่าย คุณเห็นแพคเก็ตต่อไปนี้เมื่อเกิดปัญหานี้:
Frame: Base frame propertiesETHERNET:  EType = Internet IP (IPv4) IP: Protocol = TCP - Transmission Control; Packet ID = 40530; Total IP Length = 40; Options = No OptionsTCP: Control Bits: .A.R.., len:    0, seq:         0-0, ack:3409265780, win:    0, src: 1433  dst: 4364   TCP: Source Port = 0x0599	  TCP: Destination Port = 0x110C  TCP: Sequence Number = 0 (0x0)  TCP: Acknowledgement Number = 3409265780 (0xCB354474)  TCP: Data Offset = 20 bytes  TCP: Flags = 0x14 : .A.R..    TCP: ..0..... = No urgent data    TCP: ...1.... = Acknowledgement field significant    TCP: ....0... = No Push function    TCP: .....1.. = Reset the connection    TCP: ......0. = No Synchronize    TCP: .......0 = Not the end of the data  TCP: Window = 0 (0x0)  TCP: Checksum = 0xF1E7  TCP: Urgent Pointer = 0 (0x0)				
โปรดสังเกตว่า ท่าเรือต้นทางเป็น 0x599 หรือ 1433 เป็นเลขฐานสิบ ซึ่งหมายความว่าแพ็คเก็ตมาจากโดยทั่วไปคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server และที่ กำลังทำงานบนพอร์ตเริ่มต้นของ 1433 โปรดสังเกตว่าฟิลด์ยอมรับที่มีนัยสำคัญและค่าสถานะการตั้งค่าการเชื่อมต่อถูกตั้งค่า หากคุณคุ้นเคยกับการกรองการติดตามการตรวจสอบเครือข่าย คุณสามารถกรองค่าสถานะ TCP โดย 0x14 เลขฐานสิบหกเมื่อต้องการดูเฉพาะแพ็กเกจระดาษ + ใหม่ในการสืบค้นกลับการตรวจสอบเครือข่าย

หมายเหตุว่า คุณยังสามารถดูแพคเก็ตระดาษ + ตั้งคล้ายกัน ถ้าคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server ไม่ทำงานเลย หรือ ถ้าคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server ไม่ฟังโพรโทคอล TCP/IP เพื่อให้มองเห็นแพคเก็ตระดาษ + ใหม่ไม่ยืนยันแน่นอนว่า คุณกำลังมีปัญหานี้ ถ้าWinsockListenBacklogนั้นต่ำเกินไป ยอมรับการเชื่อมต่อบางครั้งได้รับแพคเก็ต และการเชื่อมต่อได้รับแพคเก็ตระดาษ + ใหม่ทันทีในกรอบเวลาเดียวกัน

โปรดสังเกตว่า ในกรณีที่ยาก คุณอาจจะต้องปรับการตั้งค่านี้ได้แม้ว่าการทำพูลเก็บการเปิดใช้งานบนคอมพิวเตอร์ไคลเอนต์ ตัวอย่างเช่น ถ้าคอมพิวเตอร์ไคลเอนต์หลายเครื่องจะพูดคุยกับคอมพิวเตอร์ที่กำลังเรียกใช้ SQL Server เดียว ความพยายามในการเชื่อมต่อขาเข้าพร้อมกันเป็นจำนวนมากอาจเกิดขึ้นได้ตลอดเวลาเฉพาะแม้ว่าการทำพูลเก็บการเปิดใช้งาน

หมายเหตุ ถ้าคุณปรับการตั้งค่าWinsockListenBacklogคุณไม่ต้องรีสตาร์ท Windows สำหรับการตั้งค่านี้มีผลบังคับใช้ เพียงแค่หยุด และเริ่มบริการ SQL Server สำหรับการตั้งค่าที่มีผลบังคับใช้ การตั้งค่ารีจิสทรีWinsockListenBacklogสำหรับคอมพิวเตอร์ที่เรียกใช้ SQL Server เท่านั้น ไม่มีผลใด ๆ บนคอมพิวเตอร์ไคลเอ็นต์ที่มีการพูดคุยกับ SQL Server

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 328476 - การตรวจสอบครั้งสุดท้าย: 09/27/2015 08:44:00 - ฉบับแก้ไข: 8.0

Microsoft SQL Server 2000 Standard Edition, Microsoft ADO.NET 1.1, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Express Edition, Microsoft SQL 2005 Server Workgroup

  • kbsqlsetup kbinfo kbmt KB328476 KbMtth
คำติชม