KB4517771 - แก้ไข: เซสชัน CLR ที่ถูกละเลยทําให้เกิดการบล็อกใน SQL Server

นำไปใช้กับ
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2019 on Windows

อาการ

สมมติว่าคุณใช้เซสชันที่เรียกกระบวนงานที่เก็บไว้ในรันไทม์ภาษาทั่วไป (CLR) ("เซสชันการเรียก") เพื่อเข้าถึงข้อมูลใน Microsoft SQL Server และกระบวนงานนั้นสร้างการเชื่อมต่อที่แยกต่างหาก ("เซสชันที่สอง") ไปยังเซิร์ฟเวอร์เดียวกันแทนการเชื่อมต่อบริบท จากนั้น ถ้าการเรียกเซสชันสิ้นสุดลงเนื่องจากการหมดเวลาหรือการยกเลิก เซสชันที่สองอาจกลายเป็นออร์แฟริน และจะยังคงอยู่ในระบบจนกว่าจะสิ้นสุดด้วยตนเองโดยใช้คําสั่ง KILL ถ้าเซสชันที่ไม่มีเจ้าของนั้นล็อกใดๆ เซสชันอื่นๆ อาจถูกบล็อกขณะรอให้ปลดล็อก

สถานะ

Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"

การแก้ปัญหา

ปัญหานี้ได้รับการแก้ไขในการอัปเดตแบบสะสมต่อไปนี้สําหรับ SQL Server:

เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server:

การอัปเดตแบบสะสมใหม่แต่ละรายการสําหรับ SQL Server จะมีโปรแกรมแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตแบบสะสมครั้งก่อนหน้า ตรวจดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server

หมายเหตุ ตามค่าเริ่มต้น การแก้ไขจะถูกปิดใช้งานเนื่องจากจําเป็นต้องรักษาลักษณะการทํางานดั้งเดิมของการเธรด CLR ใน SQL Server คุณต้องเปิดใช้งาน หากระบบของคุณแสดงอาการตามที่กล่าวไว้ก่อนหน้านี้เท่านั้น เมื่อต้องการเปิดใช้งานการแก้ไข คุณต้องเพิ่มค่าสถานะการติดตาม 6559 ไปยังเซิร์ฟเวอร์โดยใช้ตัวเลือกการเริ่มต้นบริการกลไกจัดการฐานข้อมูล โปรดทราบว่า ค่าสถานะการติดตามนี้สามารถใช้ได้ร่วมกับตัวเลือกการเริ่มต้น SQL Server เท่านั้น ไม่สามารถตั้งค่าโดยใช้คําสั่ง DBCC TRACEON

การอ้างอิง

เรียนรู้เกี่ยวกับคำศัพท์ที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์