Symptomy
Załóżmy, że jest używana sesja, która wywołuje procedurę przechowywaną aparatu CLR (Common Language Runtime) w celu uzyskania dostępu do danych w programie Microsoft SQL Server, a ta procedura z kolei ustanawia oddzielne połączenie ("sekundę sesji") na ten sam serwer zamiast połączenia kontekstu. Następnie, jeśli sesja połączeń zostanie przerwana z powodu przekroczenia limitu czasu lub anulowania, druga sesja może zostać oddzielona i będzie istnieć w systemie do momentu jej ręcznego zakończenia za pomocą polecenia Kill . Jeśli ta oddzielona sesja zawiera blokady, inne sesje mogą być blokowane, oczekując na zwolnienie blokad.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".
Rozwiązanie
Ten problem został rozwiązany w następujących zbiorczych aktualizacjach programu SQL Server:
Informacje dotyczące aktualizacji zbiorczych dla programu SQL Server:
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
-
Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2019
-
Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2017
-
Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2016
Uwaga Poprawka jest domyślnie wyłączona ze względu na potrzebę zachowywanie starszego zachowania wątków środowiska CLR w programie SQL Server. Wystarczy je włączyć tylko wtedy, gdy w systemie zostaną podane wspomniane wcześniej objawy. Aby włączyć poprawkę, należy dodać flagę śledzenia 6559 do serwera, korzystając z opcji uruchamiania usługi aparatu bazy danych. Pamiętaj, że ta flaga śledzenia może być używana tylko razem z opcjami uruchamiania programu SQL Server. Nie można go ustawić za pomocą polecenia DBCC TRACEON .
Informacje
Informacje o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.