อาการ
สมมติว่าคุณใช้การจําลองแบบผสานใน Microsoft SQL Server 2012 หรือ ใน Microsoft SQL Server 2014 ในฐานะส่วนหนึ่งของกระบวนการซิงโครไนซ์ ผสานเอเจนต์จะสร้างรุ่นใหม่ในเซสชัน หากด้วยเหตุผลบางประการเช่นการชะงักงันหรือหมดเวลาธุรกรรมการสร้างถูกเลือกเป็นเหยื่อการชะงักงันและทรานแซคชันถูกย้อนกลับอาจมีห่วงโซ่การบล็อกขนาดใหญ่สําหรับการล็อกแอปพลิเคชัน MSinternal_makegeneration_inprog ในการสร้างรุ่นที่กําลังจะมาถึงและเซสชันที่กล่าวถึงก่อนหน้านี้จะแสดงเป็นตัวบล็อกหัว
สาเหตุ
ล็อกแอปพลิเคชันที่ใช้เพื่อช่วยรักษาความปลอดภัยกระบวนการสร้างรุ่นคือการล็อกแอปพลิเคชันระดับเซสชัน เมื่อตรวจพบการชะงักงันในระหว่างกระบวนการสร้าง เฉพาะทรานแซคชันเท่านั้นที่จะถูกย้อนกลับ แต่เซสชันจะไม่ออกจากระบบ เมื่อต้องการปลดการล็อกแอปพลิเคชันระดับเซสชัน เซสชันต้องออกจากระบบ ดังนั้น เนื่องจากการออกแบบตรรกะการลองอีกครั้ง (เซสชันจะไม่ถูกออกจากระบบระหว่างการสร้างสร้างความล้มเหลวในการจําลองแบบผสาน) ถ้าการสร้างรุ่นแรกล้มเหลวเนื่องจากการชะงักงัน การล็อกเซสชัน (MSinternal_makegeneration_inprog) ที่ได้รับจะไม่ถูกปล่อยในระหว่างการย้อนกลับของทรานแซคชัน ซึ่งทําให้เกิดการบล็อกสายโซ่ของคําขอล็อกในกระบวนการสร้างรุ่นถัดไป ตัวบล็อกศีรษะจะแสดงเป็นคําขอรุ่นแรกซึ่งล้มเหลวจากการชะงักงัน
ก่อนโปรแกรมแก้ไขด่วน SQL Server จะล้างการล็อกสําหรับกระบวนการสร้างรุ่นที่สําเร็จเท่านั้น แอปพลิเคชันเซสชันแบบออร์เฟินจะล็อกก่อนการออกจากระบบเซสชันหากเกิดการชะงัก
การแก้ปัญหา
ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตแบบสะสมของ SQL Server ต่อไปนี้
การอัปเดตสะสม 5 สําหรับ SQL Server 2014 /en-us/help/3011055
การอัปเดตสะสม 3 สําหรับ SQL Server 2012 SP2 /en-us/help/3002049
เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server
การอัปเดตแบบสะสมใหม่แต่ละรายการสําหรับ SQL Server จะมีโปรแกรมแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตแบบสะสมครั้งก่อนหน้า ตรวจดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server:
สถานะ
Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"