| Termin | Definicja |
|---|---|
| timeout połączenia z serwerem | Timeout połączenia z serwerem wskazuje na jego niedostępność lub problem z siecią. Trzy różne limity ukryte pod jednym komunikatemWarto rozróżnić, co właściwie się przeterminowało. Limit nawiązania połączenia dotyczy samego zestawienia sesji z serwerem i w bibliotece klienckiej SQL Server wynosi domyślnie kilkanaście sekund. Limit wykonania polecenia liczy się już po zalogowaniu i domyślnie daje zapytaniu około pół minuty. Trzeci limit bywa po stronie serwera aplikacji lub serwera WWW i objawia się odpowiedzią o przekroczeniu czasu bramy. Komunikat widziany przez użytkownika brzmi podobnie w każdym przypadku, ale przyczyna i sposób naprawy są zupełnie inne — pierwszy wskazuje na sieć, drugi na obciążenie bazy. Warstwy, na których połączenie potrafi utknąćSprawdzanie zaczyna się od nazwy: jeśli komputer nie rozwiązuje nazwy serwera, żadne ustawienia bazy nie pomogą. Dalej idzie warstwa transportowa — instancja domyślna nasłuchuje na porcie 1433, a instancja nazwana korzysta z portu dynamicznego, który klient poznaje dzięki usłudze pomocniczej odpowiadającej na porcie 1434 protokołu UDP. Zablokowanie tej usługi w zaporze daje dokładnie objaw przeterminowania przy poprawnej nazwie i haśle. Kolejne typowe przyczyny to wyłączony protokół TCP w konfiguracji serwera, reguła zapory otwarta tylko dla profilu domenowego, a w laptopach — opcja zezwalająca systemowi na wyłączanie karty sieciowej dla oszczędzania energii, która zrywa sesję po kilku minutach bezczynności. Do szybkiego testu wystarczy sprawdzenie osiągalności portu z komputera klienckiego. Gdy winna jest baza, a nie okablowanieDrugi scenariusz to serwer, który po prostu nie zdąży odpowiedzieć. Najczęściej stoi za tym transakcja otwarta przez pozostawione otwarte okno dokumentu w programie handlowym — blokuje wiersze, a pozostałe stanowiska czekają aż do wyczerpania limitu. Podobny efekt daje brak indeksu na kolumnie używanej w warunku, przez co zapytanie skanuje całą tabelę. Bywa też, że plik bazy rośnie skokowo według ustawionego przyrostu, a na wolnym dysku każde takie powiększenie zatrzymuje zapisy na kilkanaście sekund. Warto również wyłączyć skanowanie plików bazy i dziennika przez program antywirusowy, bo jego kontrola w locie potrafi wydłużyć zapis ponad limit. Szukanie przyczyny między stanowiskiem a serweremZgłoszenia w rodzaju „program stoi u wszystkich naraz” albo „tylko na jednym komputerze” prowadzą do zupełnie innych działań i właśnie od tego rozróżnienia zaczynamy. Serwisujemy instancje SQL Server pod oprogramowanie handlowe, sprawdzamy okablowanie, przełączniki i konfigurację zapory, a w razie potrzeby przenosimy bazę na sprawniejszy sprzęt. Działamy całą dobę przez siedem dni w tygodniu, bo zatrzymana sprzedaż nie czeka na godziny urzędowania. |