KB4052119 - การแก้ไข: ธุรกรรมที่แจกจ่ายใหม่ในฐานข้อมูล AG ล้มเหลวหลังจากที่คุณเริ่มบริการ DTC ใหม่ใน SQL Server 2016

นำไปใช้กับ
SQL Server 2016 Service Pack 1 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)

อาการ

ลองทำตามสถานการณ์ต่อไปนี้:

  • คุณมีฐานข้อมูล AlwaysOn Availability Group (AG) ใน Microsoft SQL Server 2016
  • คุณเริ่มต้นบริการ Microsoft แจกจ่ายธุรกรรมผู้ประสานงาน (DTC)
  • สมมติว่า คุณดําเนินการกระจายธุรกรรมในฐานข้อมูลที่เปิดใช้งาน AG ในสถานการณ์นี้ คุณอาจสังเกตเห็นว่า ทรานแซคชันล้มเหลวโดยมีข้อผิดพลาดที่คล้ายกับต่อไปนี้:

หมายเหตุ

Msg 8510, ระดับ 20, สถานะ 3, LineNumber
 การดําเนินการ Enlist ล้มเหลว: 0x8004d01c(XACT_E_CONNECTION_DOWN) SQL Server ไม่สามารถลงทะเบียนกับ Microsoft Distributed Transaction Coordinator (MS DTC) เป็นตัวจัดการทรัพยากรสําหรับธุรกรรมนี้ได้ ไคลเอ็นต์หรือตัวจัดการทรัพยากรอาจหยุดทรานแซคชัน
 
 Msg 596, ระดับ 21, รัฐ 1, LineNumber
 ไม่สามารถดําเนินการต่อไปได้ เนื่องจากเซสชันอยู่ในสถานะหยุดทํางาน
 
 Msg 0, ระดับ 20, สถานะ 0, LineNumber
 มีข้อผิดพลาดร้ายแรงเกิดขึ้นในคําสั่งปัจจุบัน  ผลลัพธ์ควรถูกละทิ้ง (ถ้ามี)

วิธีแก้ไขปัญหาชั่วคราว

วิธีแก้ไขปัญหานี้คือเมื่อคุณเริ่มบริการ SQL Server ใหม่ คุณอาจไม่ได้รับข้อผิดพลาด

การแก้ปัญหา

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

การอัปเดตสะสม 6 สําหรับ SQL Server 2016 SP1

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

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

การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2016

สถานะ

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

การอ้างอิง

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