現象
次のような状況で問題が発生します。
-
SQL Server AlwaysOn Group データベースで Microsoft SQL Server Service Broker (SSB) を有効にします。
-
データベースを終了して再起動します。
-
承認 (ACK) が正常に受信されたことを確認します。
このシナリオでは、ACK が正常に受信された場合でも、メッセージは転送キューから削除されません。
原因
この問題は、クリーンシャットダウンの後にデータベースを起動すると、SQL Server は、転送キューの遅延削除タスクが再利用可能かどうかを確認しないために発生します。 転送キューの削除の延期タスクは ok であることを前提としています。
解決方法
この問題は、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 の可用性グループをセカンダリレプリカ (および必要に応じてフェールバック) にフェールオーバーします。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。