Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

SqlConnection

Termin Definicja
SqlConnection

SqlConnection to klasa .NET zarządzająca połączeniem z instancją SQL Server.

Rola tej klasy w aplikacjach .NET

SqlConnection 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 tanie

Wbrew 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 przyczyny

Komunikat 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 tle

Warszawskie 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.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę