Med en databaseproxy i midten er der to separate ben til en "forbindelse":
- For det første er der en forbindelse fra applikationen til proxyen. Det du kaldte "applikationssidepooling" er denne type forbindelse. Da der stadig er overhead forbundet med at oprette en ny forekomst af denne type forbindelse, er det sandsynligvis en god idé at fortsætte med at bruge en forbindelsespulje i din applikation.
- For det andet er der en forbindelse fra proxyen til databasen. Disse forbindelser administreres af proxyen. Antallet af forbindelser af denne type styres af en proxy-konfiguration. Hvis du indstiller denne konfiguration til 100 %, tillader du proxyen at bruge op til databasens
max_connections
værdi , og andre klienter kan blive sultet efter forbindelser.
Så når din applikation vil bruge en forbindelse, skal den få en forbindelse fra dens lokale pool. Derefter skal proxyen parre det med en forbindelse til databasen. Proxyen vil genbruge forbindelser til databasen, hvor det er muligt (denne teknik kaldes også multiplexing ).
Eller, med henvisning til de officielle dokumenter:"Du kan åbne mange samtidige forbindelser til proxyen, og proxy'en holder et mindre antal forbindelser åbne til DB-instansen eller -klyngen. Hvis du gør det, minimeres hukommelsesomkostningerne yderligere for forbindelser på databaseserveren. Dette teknik reducerer også chancen for "for mange forbindelser"-fejl."