2013-01-10 14 views
8

Prowadzimy stronę internetową na serwerze vps z serwerem sql 2008 x64 r2. Jesteśmy bombardowani 17886 błędów - a mianowicie:Błąd 17886 - Serwer zerwie połączenie

Serwer spadnie połączenia, ponieważ kierowca klient wysłał wielu żądań, gdy sesja jest w trybie pojedynczego użytkownika. Ten błąd o błędzie występuje, gdy klient wysyła żądanie zresetowania połączenia , gdy partie nadal działają w sesji lub gdy klient wysyła żądanie, podczas gdy sesja resetuje połączenie. Proszę skontaktować się ze sprzedawcą klienta.

Powoduje to, że instrukcje sql zwracają uszkodzone wyniki. Próbowałem prawie wszystkie sugestie, które znalazłem w sieci, w tym:

  • z marsa i bez.
  • z łączenia i bez
  • z async = true i bez

mamy tylko jedną bazę danych i jest absolutnie dla wielu użytkowników.

Wszystko zostało niedawno zainstalowane, więc jest aktualne. Mogą być skorelowane z high cpu (choć nie wyłącznie według monitorów, które widziałem). Również korelował z high request rates z wyszukiwarek. Jednak wysokie cpu/żądania nie powinny powodować zerowania połączeń sql - w najgorszym wypadku powinniśmy mieć wysokie czasy odpowiedzi lub odmówić wysłania odpowiedzi.

Wszelkie sugestie? Jestem tylko programistą, a nie dba - czy potrzebuję dba, aby rozwiązać ten problem?

Odpowiedz

1

Nie jestem pewien, ale niektóre z Twoich zapytań mogą powodować zakleszczenia na serwerze.

W momencie wykrycia tego błędu ponownie

  • Otwórz Management Studio (na serwerze, należy zainstalować go, jeśli to konieczne)

  • otworzyć nowe okno zapytań

  • Run sp_who2

  • Sprawdź blkby kolumna krótka dla Zablokowana przez. Jeśli są jakieś dane w tej kolumnie, masz problem z zakleszczeniem (Zwykle powinien to być ekran, który załączam, całkowicie pusty).

Jeśli masz impas, możemy kontynuować kolejne kroki. Ale teraz sprawdź to.

enter image description here

+0

trudno złapać serwera w momencie wystąpienia błędów. czy muszę przechwytywać te dane w tym samym momencie błędu? Jeśli tak, nie jestem pewien, kiedy nadejdzie następne okno możliwości. Są dni w czasie bez błędów, a potem wszystkie nagłe setki błędów. Czy istnieje inne rozwiązanie, aby spróbować w międzyczasie? – nomadsolo

+0

Sprawdź pliki w tym katalogu: "C: \ Program Files \ Microsoft SQL Server \\ [YourSQLInstanceName] \ MSSQL \ Log" i sprawdź swój dziennik zdarzeń. Spróbuj znaleźć więcej informacji i jeśli uważasz, że znalazłeś coś użytecznego, dodaj to do swojego pytania. – erichste

+0

Wiadomość, którą napisałem powyżej ("Serwer zrzuci połączenie ...") jest błędem, który widzę w dzienniku błędów sql, tam są setki z nich – nomadsolo

0

Chciałbym utworzyć zadanie dziennik_zdarzeń na email Jeśli ilekroć 17886 jest wyrzucane. Następnie idź natychmiast do db i wykonaj sp_who2, zdobądź blkby spid i uruchom bufor wejściowy dbcc. Mam nadzieję, że eventinfo da ci coś bardziej namacalnego do kontynuowania.

sp_who2

DBCC INPUTBUFFER (62) GO

Powiązane problemy