Symptomy
Rozpatrzmy następujący scenariusz:
-
Włączono brokera usług programu Microsoft SQL Server (SSB) w bazie danych grup funkcji AlwaysOn programu SQL Server.
-
Zamknięcie i ponowne uruchomienie bazy danych.
-
Upewnij się, że potwierdzenie (ACK) zostało pomyślnie odebrane.
W tym scenariuszu wiadomość nie jest usuwana z kolejki transmisji, mimo że potwierdzenie zostało odebrane pomyślnie.
Przyczyna
Ten problem występuje, ponieważ po uruchomieniu bazy danych po zamknięciu Zamknij program SQL Server nie sprawdza, czy zadanie usuwania odroczone do kolejki transmisji jest wielokrotnego użytku. Przyjmuje się, że zadanie usunięcia odroczone do kolejki transmisji jest prawidłowe.
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 1 dla programu SQL Server 2014 /en-us/help/2931693
Zbiorcza aktualizacja 9 dla programu SQL Server 2012 z dodatkiem SP1 /en-us/help/2931078
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Obejście
Aby obejść ten problem, należy przełączyć się do trybu failover w grupie dostępność programu SQL Server do repliki pomocniczej (i powrót po awarii, jeśli jest to wymagane).
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".