การลบการเชื่อมต่อ
ตัวพูลการเชื่อมต่อจะลบการเชื่อมต่อออกจากพูลหลังจากที่ไม่ได้ใช้งานเป็นเวลานานหรือหากพูลเลอร์ตรวจพบว่าการเชื่อมต่อกับเซิร์ฟเวอร์นั้นถูกตัด
โปรดทราบว่าสามารถตรวจพบการเชื่อมต่อที่ตัดขาดหลังจากพยายามสื่อสารกับเซิร์ฟเวอร์เท่านั้น หากพบการเชื่อมต่อที่ไม่ได้เชื่อมต่อกับเซิร์ฟเวอร์อีกต่อไปจะมีการทำเครื่องหมายว่าไม่ถูกต้อง
การเชื่อมต่อที่ไม่ถูกต้องจะถูกลบออกจากกลุ่มการเชื่อมต่อเฉพาะเมื่อพวกเขาถูกปิดหรือเรียกคืน
หากมีการเชื่อมต่อกับเซิร์ฟเวอร์ที่หายไปการเชื่อมต่อนี้สามารถดึงออกมาจากกลุ่มได้แม้ว่ากลุ่มการเชื่อมต่อจะไม่ตรวจพบการเชื่อมต่อที่ถูกตัดและทำเครื่องหมายว่าไม่ถูกต้อง
เป็นกรณีนี้เนื่องจากค่าใช้จ่ายในการตรวจสอบว่าการเชื่อมต่อยังคงถูกต้องจะกำจัดประโยชน์ของการมี pooler โดยทำให้เกิดการเดินทางไปกลับไปยังเซิร์ฟเวอร์ที่เกิดขึ้นอีก
เมื่อสิ่งนี้เกิดขึ้นความพยายามครั้งแรกในการใช้การเชื่อมต่อจะตรวจพบว่าการเชื่อมต่อนั้นถูกตัดออกไปและมีข้อผิดพลาดเกิดขึ้น
โดยทั่วไปสิ่งที่คุณเห็นคือข้อยกเว้นในประโยคสุดท้าย
การเชื่อมต่อนำมาจากพูลการเชื่อมต่อแอปพลิเคชันไม่ทราบว่าการเชื่อมต่อทางกายภาพหายไปความพยายามในการใช้งานเสร็จสิ้นภายใต้สมมติฐานว่าการเชื่อมต่อทางกายภาพยังคงอยู่ที่นั่น
และคุณได้รับข้อยกเว้น
มีสาเหตุทั่วไปบางประการสำหรับเรื่องนี้
- เซิร์ฟเวอร์ได้รับการเริ่มต้นใหม่ซึ่งจะปิดการเชื่อมต่อที่มีอยู่
ในกรณีนี้ให้ดูที่บันทึก SQL Server ซึ่งมักจะพบที่: C: \ Program Files \ Microsoft SQL Server \\ MSSQL \ LOG
หากการประทับเวลาสำหรับการเริ่มต้นเป็นรุ่นล่าสุดเราสามารถสงสัยได้ว่านี่เป็นสาเหตุของข้อผิดพลาด ลองเชื่อมโยงการประทับเวลานี้กับเวลาที่มีข้อยกเว้น
2009-04-16 11: 32: 15.62 เซิร์ฟเวอร์ที่บันทึกข้อความ SQL Server ในไฟล์ 'C: \ Program SQL Server \ MSSQL.1 \ MSSQL \ LOG \ ERRORLOG' C: \ Program Files \ Microsoft
- บางคนหรือบางอย่างได้ฆ่า SPID ที่กำลังใช้งานอยู่
ดูที่บันทึก SQL Server อีกครั้ง หากคุณพบการฆ่าพยายามเชื่อมโยงการประทับเวลานี้กับเวลาที่มีข้อยกเว้น
2009-04-16 11: 34: 09.57 spidXX Process ID XX ถูกฆ่าโดยชื่อโฮสต์ xxxxx, ID กระบวนการโฮสต์ XXXX
- มี failover (ในตัวอย่างการตั้งค่ามิเรอร์) อีกครั้งลองดูในบันทึกของ SQL Server
หากมีความล้มเหลวให้ลองเชื่อมโยงการประทับเวลานี้กับเวลาที่มีข้อยกเว้น
2009-04-16 11: 35: 12.93 spidXX ฐานข้อมูลมิเรอร์“” กำลังเปลี่ยนบทบาทจาก“ PRINCIPAL” เป็น“ MIRROR” เนื่องจาก Failover