Udostępnij za pośrednictwem


Obsługa zakleszczenia

When an instance of the Microsoft Aparat baz danych programu SQL Server chooses a transaction as a deadlock victim, it terminates the current batch, rolls back the transaction, and returns error message 1205 to the application.

Your transaction (process ID #52) was deadlocked on {lock | communication buffer | thread} resources with another process and has been chosen as the deadlock victim. Rerun your transaction.

Ponieważ przesyłanie aplikacji Transact-SQL kwerendy może zostać wybrany jako ofiara zakleszczenie aplikacje powinny mieć obsługi błędu, który można przechwytywać komunikat o błędzie 1205.Jeśli aplikacja nie wyłapać błąd, aplikacji można przejść unaware, że jego transakcja została wycofana i mogą wystąpić błędy.

Implementowanie obsługi błędów, które pułapki komunikat o błędzie 1205 umożliwia aplikacji obsługi sytuacji impasu i zaradczych akcja (na przykład automatycznie przesłaniem kwerendy, który wykonywano zakleszczenie).Przez przesłaniem kwerendy automatycznie, użytkownik musi wiedzieć, że wystąpiło zakleszczenie.

Wniosek należy wstrzymać krótko przed przesłaniem kwerendy.Dzięki temu zaangażowanych w zakleszczenie szansę, aby zakończyć i zwolnić jego blokady, które stanowiły część cyklu zakleszczenie transakcji.Zmniejsza prawdopodobieństwo zakleszczenie pojawiał kwerendę ponownie przesłać żądanie jego blokad.