Mam witrynę, która jest białą etykietą (wiele wersji tej samej witryny), którą niedawno uruchomiłem. Nie ma jeszcze dużego ruchu - głównie boty, ale prawdopodobnie 800 użytkowników dziennie. Jest on hostowany na platformie Azure z bazą danych Azure oraz panelem administracyjnym znajdującym się na nie-lazurowym serwerze. Obie witryny łączą się z tą samą bazą danych Azure. Istnieje również kilka ról pracowniczych do przetwarzania danych - w 99% przypadków nic nie robią, ale sprawdzają regularnie.Problemy z łącznością z bazą danych Azure SQL - Zbyt wiele połączeń?
zawsze doświadczył przypadkowe błędy, które trwają kilka sekund, a następnie jest ponownie ok, takie jak:
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
Tego ranka jednak mieliśmy bardziej poważny problem. Zaczęło się:
System.ComponentModel.Win32Exception: An existing connection was forcibly closed by the remote host
Nastąpiło to podczas botów (Google, Baidu, AhrefsBot & Wiseguys.nl) indeksowania witryny. Dostałem z nich jeden lub więcej błędów. Dostałem:
System.Data.SqlClient.SqlException: The service has encountered an error processing your request. Please try again. Error code 40143. A severe error occurred on the current command. The results, if any, should be discarded.
To było podczas fazy ExecuteReader.
10 minut później pojawił się prawdziwy problem - co oznaczało, że nikt nie mógł zalogować się do interfejsu administratora, ale witryna hostowana na platformie Azure wyglądała dobrze, gdy testowałem, mimo że boty wciąż wywoływały błędy. Problemem było:
System.ComponentModel.Win32Exception: The wait operation timed out
Trwało to z przypadkowych połączeń działa z przerwami przez około godzinę. Potem uderzyłem w inny problem:
System.Data.SqlClient.SqlException: Resource ID : 1. The request limit for the database is 180 and has been reached. See ' http://go.microsoft.com/fwlink/?LinkId=267637 ' for assistance.
To zdarzenie miało miejsce w ostatniej godzinie - głównie dla ról pracowników. Potem próbował dowiedzieć się, co było objęcie wszystkich tych wniosków i znalazłem to polecenie:
SELECT * FROM sys.dm_exec_requests
To tylko powróciło 1 lub 2 żądań kiedy biegałam w kółko.
Moje pytania brzmią: 1) Czy ktoś inny doświadcza względnie regularnego (raz, może dwa razy dziennie) tymczasowego rozłączenia się z serwerem hostowanym na platformie Azure? 2) Czy powyższa lista zdarzeń wskazuje na konkretny problem? Wszystko mogło się zdarzyć, gdy wielu administratorów logowało się jednocześnie. 3) Jak mogę lepiej debugować liczbę żądań do bazy danych, gdy otrzymam komunikat o limicie 180?
Z góry dziękuję.