Co to jest pula połączeń?
Pula połączeń to termin określający zarządzanie połączeniami użytkowników wykonujących zapytania do baz danych. Chociaż wielu użytkowników może tego nie zauważyć, gdy duża liczba użytkowników szuka dostępu do serwera aplikacji, na którym znajduje się baza danych, sama liczba połączeń może być prawie niemożliwa dla serwera w celu utrzymania dobrego połączenia ze wszystkimi połączeniami na te czasy. Inżynieria oprogramowania, która umożliwia tworzenie pul połączeń, pozwala serwerowi dobrze zarządzać połączeniami bez względu na dużą liczbę połączeń tworzących zapytania i umożliwia reagowanie na te zapytania z prędkością poniżej sekundy.
Połączenia muszą mieć identyczną konfigurację, aby mogły zostać uwzględnione w puli połączeń, dlatego większość programów do łączenia pul serwerów ma różne pule połączeń działające jednocześnie. Gdy użytkownik chce się połączyć, zostaje przypisany do puli o podobnych konfiguracjach, jeśli jest dostępne miejsce. Jeśli nie ma dostępnego miejsca, żądanie jest w kolejce do przypisania, gdy tylko będzie dostępne. Użytkownik może nie zdawać sobie sprawy, że znajduje się w kolejce, ale może po prostu zauważyć, że baza danych wydaje się spowolniona w odpowiedzi na zapytanie; jednak w zapleczu systemów zarządzania bazami danych skanowane są pule w celu znalezienia miejsca dla użytkownika w celu znalezienia otwartego połączenia. Większość programów pulujących połączenia ma ustawioną listę maksymalnej liczby użytkowników na pulę i minimalne ustawienia czasu, przez które połączenie może pozostać nieaktywne przed zerwaniem połączenia i przywróceniem dostępności do puli.
Podczas tworzenia puli połączeń tworzona jest pewna liczba obiektów połączeń i dodawana do puli. Aby pula mogła zostać uznana za aktywną, potrzebuje minimalnej liczby obiektów. Te obiekty połączeń to stanowiska dostępności, które łączą połączenie z pulą, i można je tworzyć i dodawać do puli w razie potrzeby, aż do maksymalnej dopuszczalnej wartości w puli. Ponieważ użytkownicy są zadowoleni ze swoich zapytań i porzucają obiekt połączenia, obiekty są zwracane do puli przez programy pulujące połączenia w celu użycia przez innego użytkownika lub tego samego użytkownika, gdy on lub ona powróci.
Jednym z czynników, który może spowolnić czasy odpowiedzi w puli połączeń, jest tak zwana fragmentacja puli. Fragmentacja puli zwykle występuje ze względu na zintegrowane zabezpieczenia lub zbyt wiele baz danych znajdujących się na istniejącym zestawie serwerów. System zarządzania bazą danych uwierzytelniający użytkowników, a następnie umieszczający ich w kolejce lub przypisujący do istniejących obiektów puli połączeń, wyczerpuje pamięć, a ściślejsza konstrukcja systemu dostępu często usuwa problem zbyt wielu baz danych. Zintegrowany system bezpieczeństwa programów opartych na systemie Windows w wielu programach do łączenia pul wymaga, aby w puli przebywał tylko jeden użytkownik systemu Windows. Można to wyjaśnić, tworząc więcej pul, aby uwzględnić dodatkowe żądania wymagające jednoczesnej odpowiedzi.
Jeśli program puli połączeń wykryje, że użytkownik był bezczynny przez określony czas lub połączenie zostało zerwane, zwróci obiekt połączenia do puli jako niepoprawny obiekt. Jeśli serwer ulegnie awarii, gdy połączenie jest aktywne, połączenie może zostać zerwane, nawet jeśli pula połączeń nie jest świadoma przerwanego połączenia. Programy puli połączeń ActiveX zwykle następnie usuwają pulę tych połączeń podczas ponownego uruchamiania serwera.