Pooling-ul de conexiuni este termenul pentru gestionarea conexiunilor utilizatorilor care fac interogări de baze de date. Deși mulți utilizatori ar putea să nu observe acest lucru, atunci când există un număr mare de utilizatori care caută acces la un server de aplicații pe care se află o bază de date, volumul mare de conexiuni poate deveni aproape imposibil pentru un server să mențină o conexiune bună cu toate conexiunile de la aceste vremuri. Ingineria software care permite gruparea conexiunilor face posibil ca un server să gestioneze bine conexiunile, indiferent de volumul mare de conexiuni care fac interogări și permite răspunsul la aceste interogări cu viteze sub secunde.
Conexiunile trebuie să aibă o configurație identică pentru a fi incluse într-un pool de conexiuni, astfel încât majoritatea programelor de pooling de conexiuni la server au diferite pool-uri de conexiuni care rulează simultan. Când un utilizator încearcă să se conecteze, el sau ea este alocat unui pool cu configurații similare, dacă spațiul este disponibil. Dacă nu există spațiu disponibil, cererea este pusă în coadă pentru a fi alocată de îndată ce una devine disponibilă. Este posibil ca un utilizator să nu știe că se află într-o coadă, dar poate observa pur și simplu că baza de date pare lentă în răspunsul la interogare; cu toate acestea, în back office-ul sistemelor de gestionare a bazelor de date, există scanarea pool-urilor pentru a găsi spațiu pentru ca utilizatorul să găsească o conexiune deschisă. Majoritatea programelor de pooling de conexiuni au o listă setată de utilizatori maximi per pool și setări minime de timp pentru care o conexiune poate rămâne inactivă înainte ca conexiunea să fie întreruptă și disponibilitatea să fie returnată la pool.
La crearea unui pool de conexiuni, un anumit număr de obiecte de conexiune sunt create și adăugate la pool. Pentru ca un bazin să fie considerat activ, are nevoie de un număr minim de obiecte. Aceste obiecte de conexiune sunt locurile de disponibilitate care leagă o conexiune la piscină și pot fi create și adăugate la piscină după cum este necesar, până la maximul permis într-un pool. Pe măsură ce utilizatorii sunt mulțumiți de interogarea lor și își abandonează obiectul de conexiune, obiectele sunt returnate în pool de către programele de pooling de conexiuni pentru a fi utilizate de către alt utilizator sau același utilizator atunci când acesta revine.
Un factor care poate încetini timpii de răspuns în gruparea conexiunilor este ceea ce se numește fragmentare pool. Fragmentarea pool-ului are loc de obicei din cauza securității integrate sau a prea multor baze de date care rezidă pe un set existent de servere. Un sistem de gestionare a bazei de date care autentifică utilizatorii și apoi îi pune în coadă sau le atribuie obiectelor existente din grupul de conexiuni consumă memoria, iar un design mai strict al sistemului pentru accese rezolvă adesea problema prea multe baze de date. Proiectarea sistemului de securitate integrat al programelor bazate pe Windows în multe programe de pooling de conexiuni necesită ca un singur utilizator bazat pe Windows să locuiască într-un pool la un moment dat. Acest lucru poate fi clarificat prin crearea mai multor pool-uri pentru a găzdui solicitări suplimentare care trebuie să primească răspunsuri simultan.
Dacă programul de pooling de conexiuni detectează că un utilizator a fost inactiv peste o perioadă de timp stabilită sau conexiunea a fost întreruptă, va returna obiectul de conexiune în pool ca obiect nevalid. Dacă un server se defectează în timp ce o conexiune este în vigoare, conexiunea poate fi în continuare retrasă, chiar dacă grupul de conexiuni nu este conștient de conexiunea întreruptă. Programele ActiveX-pool de conexiuni, de obicei, procedează la ștergerea pool-ului acestor conexiuni pe măsură ce serverul este repornit.