อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณเปิดใช้งาน Microsoft SQL Server Service Broker (SSB) ในฐานข้อมูลกลุ่มตลอดเวลาของ SQL Server
-
คุณปิดและเริ่มต้นฐานข้อมูล
-
ตรวจสอบให้แน่ใจว่าได้รับการยอมรับ (ACK) เสร็จเรียบร้อยแล้ว
ในสถานการณ์สมมตินี้ข้อความจะไม่ถูกเอาออกจากคิวการส่งถึงแม้ว่าจะได้รับ ACK เสร็จเรียบร้อยแล้ว
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากเมื่อคุณเริ่มต้นฐานข้อมูลหลังจากการปิดระบบใหม่ทั้งหมด SQL Server จะไม่ตรวจสอบว่าคิวการส่งข้อมูลที่เลื่อนออกไปจะถูกนำกลับมาใช้ใหม่หรือไม่ จะถือว่าคิวการส่งการลบงานที่เลื่อนออกไปจะตกลง
การแก้ไข
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมของ SQL Server ครั้งแรก
การอัปเดตที่สะสม1สำหรับ SQL Server ๒๐๑๔ /en-us/help/2931693
การอัปเดตที่สะสม9สำหรับ SQL Server ๒๐๑๒ SP1 /en-us/help/2931078
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ล้มเหลวกลุ่มความพร้อมใช้งานของ SQL Server ไปยังแบบจำลองทุติยภูมิ (และ failback ถ้าจำเป็น)
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"