| Termin | Definicja |
|---|---|
| SqlConnection | SqlConnection to klasa .NET zarządzająca połączeniem z instancją SQL Server. Rola tej klasy w aplikacjach .NETSqlConnection reprezentuje pojedyncze połączenie z bazą Microsoft SQL Server w bibliotece dostępu do danych platformy .NET. Obiekt tworzy się na podstawie łańcucha połączenia, w którym podaje się adres instancji, nazwę bazy oraz sposób uwierzytelniania: zintegrowany, czyli oparty na koncie systemu Windows, albo nazwą użytkownika i hasłem SQL. Sama klasa nie wykonuje zapytań — jest kanałem, z którego korzystają obiekty poleceń i adapterów. Otwiera się ją, wykonuje operację i zamyka, najlepiej w konstrukcji gwarantującej zwolnienie zasobu nawet przy wyjątku. Pula połączeń, czyli dlaczego zamykanie jest tanieWbrew pozorom zamknięcie połączenia zwykle nie zrywa niczego na poziomie sieci. Platforma utrzymuje pulę połączeń: obiekt zwrócony do puli czeka na ponowne użycie przez kolejne żądanie z identycznym łańcuchem połączenia. Dlatego wzorzec otwierania połączenia jak najpóźniej i zamykania jak najwcześniej jest wydajniejszy niż trzymanie jednego otwartego obiektu przez cały czas życia aplikacji. Konsekwencja jest istotna: dwa łańcuchy różniące się choćby spacją albo kolejnością parametrów tworzą dwie osobne pule, co przy aplikacji wielodostępnej potrafi wyczerpać limit połączeń serwera. Najczęstsze błędy i ich prawdziwe przyczynyKomunikat o wyczerpaniu puli połączeń niemal zawsze oznacza wyciek — gdzieś w kodzie połączenie zostało otwarte i nigdy zwrócone, zwykle dlatego, że wyjątek ominął zamknięcie. Błąd nawiązania połączenia z serwerem bywa mylnie przypisywany bazie, a wynika z wyłączonej usługi przeglądarki SQL, zablokowanego portu w zaporze, wyłączonego protokołu TCP/IP w konfiguracji sieciowej serwera albo z nazwanej instancji podanej bez ukośnika. Przekroczenie limitu czasu ma dwa różne oblicza: limit nawiązywania połączenia to problem sieciowy, natomiast limit wykonania polecenia to zwykle blokada lub źle zoptymalizowane zapytanie. Osobna kategoria to składanie łańcucha zapytania przez sklejanie tekstu z danymi użytkownika, co otwiera drogę do wstrzyknięcia SQL; poprawnym rozwiązaniem są parametry. Groźnym zwyczajem jest też trzymanie hasła w pliku konfiguracyjnym bez szyfrowania. Serwer, stacja robocza i awarie w tleWarszawskie Pogotowie Komputerowe obsługuje firmy, w których aplikacja przestaje łączyć się z bazą po zmianie sprzętu, awarii dysku serwera, resecie ustawień sieci lub aktualizacji systemu zmieniającej reguły zapory. Diagnozujemy warstwę sprzętową i sieciową, odzyskujemy dane z uszkodzonych nośników i przygotowujemy stanowiska tak, by aplikacja bazodanowa znów widziała serwer. Sprzęt odbieramy i odwozimy własnym transportem, bez opłat. |