Objawy
Załóżmy, że umożliwiają grupy dostępności (AlwaysOn) w wystąpieniu programu Microsoft SQL Server 2014. Praca awaryjna grupy dostępności jest przeprowadzić, gdy podstawowy replik ma aktywnych transakcji. Następnie pojawić następujący komunikat ostrzegawczy 3303:
Zdalne wzmacniania zabezpieczeń transakcji "%. * ls (identyfikator 0 x % 016I64x %ls) rozpoczęte w lokalizacji % S_DATE bazy danych '%ls' % LSN S_LSN nie powiodło się.
W tej sytuacji następujące sterowniki danych lub dostawców nie może przechwycić wyjątek "remote hartowania awarii":
-
Sterownik JDBC firmy Microsoft dla programu SQL Server 4.0
-
Sterownik OLE DB programu SQL Server
-
Program SQL Server Native client dla OLE DB
W związku z tym aplikacji klienckiej, która używa tych sterowników lub dostawców nie wiedzieć, że transakcja jest "w stanie wątpliwym." Transakcja "w wątpliwość" oznacza, że może zostały popełnione i hartowane na dysk pomyślnie lub jest przerwane i przywracana przez program SQL Server. Jeżeli ta transakcja "w wątpliwość" zostanie przywrócona, te sterowniki lub dostawców nadal może uznać transakcja przekazana jako pomyślnie, ponieważ one nie może przechwytywać wyjątku. Może to spowodować problem niespójności danych aplikacji.
Uwaga: Następujący dostawcy połączenia można przechwycić wyjątek "remote hartowania awarii" dla transakcji "w wątpliwość":
-
Sterownik Microsoft ODBC dla programu SQL Server
-
Program SQL Server Native Client (ODBC)
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w następujących aktualizacji zbiorczej programu SQL Server.
5 aktualizację zbiorczą dla programu SQL Server 2014/en-us/help/3011055
Każda nowa aktualizacja zbiorcza dla programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały zawarte w poprzedniej zbiorczej aktualizacji. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
Informacje o poprawceTa poprawka wprowadza nowe flagi śledzenia 3923. Flagi śledzenia pozwoli zgłoszony wyjątek do aplikacji, gdy uruchamiany jest komunikat ostrzegawczy 3303 programu SQL Server.
Po zastosowaniu tej poprawki należy włączyć tej flagi śledzenia rozwiązać ten problem. Poprawki i flagi śledzenia aplikacja musi także zaimplementować kody sprawdzania poprawności, aby sprawdzić, czy transakcja jest cofana lub popełnionych po przechwyceniu wyjątku.
Obsługiwana poprawka jest udostępniana przez firmę Microsoft. Jednak ta poprawka jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Tylko w systemach, których dotyczy ten problem, należy zastosować tę poprawkę.
Jeśli poprawka jest dostępna do pobrania, pojawi się sekcja "Poprawka dostępna do pobrania" na początku tego artykułu z bazy wiedzy Knowledge Base. Jeśli nie ma tej sekcji, należy przesłać żądanie do centrum obsługi klienta firmy Microsoft i obsługi technicznej w celu uzyskania poprawki.
Uwaga Jeśli wystąpią dodatkowe błędy lub konieczność rozwiązania problemu, być może trzeba będzie utworzyć osobne zlecenie usługi. Zwykłe koszty obsługi będą zastosowane do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej poprawki. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta firmy Microsoft lub utworzyć osobne zlecenie usługi odwiedź następujące witryny firmy Microsoft:
http://support.microsoft.com/contactus/?ws=supportUwaga "Poprawka dostępna do pobrania" zawiera listę języków, dla których dostępna jest poprawka. Jeśli odpowiedni język nie jest widoczny, to dlatego, że poprawka nie jest dostępna dla danego języka.
Wymagania dotyczące ponownego uruchomieniaNie musisz ponownie uruchomiać komputera po zastosowaniu tej poprawki.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.