徵狀
請試想下列案例:
-
您可以在 SQL Server AlwaysOn 群組資料庫中啟用 Microsoft SQL Server Service Broker (SSB)。
-
您關閉並重新啟動資料庫。
-
確認已順利接收到確認(ACK)。
在這種情況下,即使確認收到成功,也不會從傳輸佇列中移除訊息。
原因
發生這個問題的原因是,當您在正常關機後啟動資料庫時,SQL Server 不會檢查傳輸佇列是否已延遲刪除任務是否可重複使用。 它假設傳輸佇列已延遲刪除工作正常。
解決方案
此問題最初是在 SQL Server 的後續累積更新中修正。
SQL Server 2014 的累積更新1 /en-us/help/2931693
SQL Server 2012 SP1 的累積更新9 /en-us/help/2931078
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
因應措施
若要解決此問題,請將 SQL Server 可用性群組容錯移轉至次要副本(如果需要,則為 [回切])。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。