Vad är Connection Pooling?

Anslutningspoolning är termen för hantering av anslutningar för användare som gör förfrågningar i databaser. Även om många användare kanske inte märker det, när det finns ett stort antal användare som söker tillgång till en applikationsserver på vilken en databas finns, kan den stora mängden anslutningar bli nästan omöjlig för en server att upprätthålla en god anslutning till alla anslutningar på dessa tider. Mjukvaruteknik som möjliggör pooling av anslutningar gör det möjligt för en server att hantera anslutningar väl oavsett den höga volymen av anslutningar som gör frågor och möjliggör svar på dessa frågor med hastigheter på undersekund.

Anslutningar måste ha identisk konfiguration för att inkluderas i en anslutningspool, så de flesta serveranslutningspoolningsprogram har olika anslutningspooler som körs samtidigt. När en användare försöker ansluta tilldelas han eller hon en pool med liknande konfigurationer, om utrymme finns tillgängligt. Om det inte finns ledigt utrymme ställs förfrågan i kö för att tilldelas så snart en blir tillgänglig. En användare kanske inte är medveten om att han eller hon står i en kö, men kan helt enkelt lägga märke till att databasen verkar långsam i frågesvar; men i backoffice av databashanteringssystem, skannas poolerna för att hitta utrymme för användaren att hitta en öppen anslutning. De flesta anslutningspoolningsprogram har en uppsättning lista över maximala användare per pool och minsta antal tidsinställningar för vilka en anslutning kan förbli inaktiv innan anslutningen avbryts och tillgängligheten återställs till poolen.

Vid skapandet av en anslutningspool skapas ett visst antal anslutningsobjekt som läggs till i poolen. För att en pool ska anses vara aktiv behöver den ett minimum antal objekt. Dessa anslutningsobjekt är tillgänglighetsplatserna som binder en anslutning till poolen, och de kan skapas och läggas till i poolen efter behov upp till det högsta tillåtna inom en pool. När användare är nöjda med sin fråga och lämnar sitt anslutningsobjekt, returneras objekten till poolen av anslutningspoolningsprogrammen för användning av en annan användare eller samma användare när han eller hon återvänder.

En faktor som kan bromsa svarstider vid anslutningspoolning är det som kallas poolfragmentering. Poolfragmentering uppstår vanligtvis på grund av integrerad säkerhet eller för många databaser som finns på en befintlig uppsättning servrar. Ett databashanteringssystem som autentiserar användare och sedan köar eller tilldelar dem till befintliga anslutningspoolobjekt dränerar minne, och en stramare systemdesign för åtkomster löser ofta problemet med för många databaser. Den integrerade säkerhetssystemdesignen av Windows-baserade program i många anslutningspoolningsprogram kräver att endast en Windows-baserad användare finns i en pool åt gången. Detta kan lösas genom att skapa fler pooler för att tillgodose ytterligare förfrågningar som måste besvaras samtidigt.

Om anslutningspoolningsprogrammet upptäcker att en användare har varit inaktiv efter en viss tidsperiod eller om anslutningen har brutits, kommer det att returnera anslutningsobjektet till poolen som ett ogiltigt objekt. Om en server går ner medan en anslutning är aktiv, kan anslutningen fortfarande dras tillbaka även om anslutningspoolen inte är medveten om den avbrutna anslutningen. ActiveX-anslutningspoolprogram fortsätter sedan vanligtvis att rensa poolen från dessa anslutningar när servern startas om.