Simptomi
Iedomājieties šādu scenāriju:
-
Jūs iespējojat Microsoft SQL Server Service Broker (SSB) SQL Server AlwaysOn grupas datu bāzē.
-
Jūs beidzējat un restartējat datu bāzi.
-
Pārliecinieties, vai ir veiksmīgi saņemts apstiprinājums (ACK).
Šajā scenārijā ziņojums netiek noņemts no pārsūtīšanas rindas pat tad, ja ACK ir veiksmīgi saņemts.
Cēlonis
Problēma rodas tāpēc, ka, startējot datu bāzi pēc tīrās beidzēšanas, SQL Server nepārbauda, vai pārsūtīšanas rindas atliktais dzēšanas uzdevums ir atkārtoti lietojams. Tiek pieņemts, ka pārsūtīšanas rindas atliktais dzēšanas uzdevums ir kārtībā.
Risinājums
Šī problēma pirmo reizi tika izlabota tālāk sniegtajā SQL Server kumulatīvajā atjauninājumā.
Kumulatīvais atjauninājums 1 SQL Server 2014 /en-us/help/2931693
Kumulatīvais atjauninājums 9 SQL Server 2012 SP1 /en-us/help/2931078
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Risinājums
Lai novērstu šo problēmu, kļūmjpārleces SQL Server pieejamības grupu sekundārajā dublikātā (un Failback, ja tas ir nepieciešams).
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".