Cos'è il pooling di connessione?
Il pooling delle connessioni è il termine per la gestione delle connessioni degli utenti che fanno query di database. Sebbene molti utenti possano non se ne accorge, quando esiste un gran numero di utenti che cercano l'accesso a un server delle applicazioni su cui risiede un database, il volume di connessioni può diventare quasi impossibile per un server mantenere una buona connessione con tutte le connessioni in questi tempi. L'ingegneria del software che consente il pooling di connessioni consente a un server di gestire bene le connessioni indipendentemente dall'elevato volume di connessioni che effettuano query e consente la risposta a queste query con velocità secondarie.
Le connessioni devono essere di una configurazione identica da includere in un pool di connessioni, quindi la maggior parte dei programmi di pooling di connessioni server ha diversi pool di connessione che eseguono contemporaneamente. Quando un utente cerca di connettersi, viene assegnato a un pool con configurazioni simili, se lo spazio è disponibile. Se non è disponibile spazio, la richiesta viene in fila per essere assegnata non appena si viene disponibile. Un utente potrebbe non essere consapevole che è in coda, ma potrebbe semplicemente notare che il database sembra lento nella risposta delle query; Tuttavia, nel back office dei sistemi di gestione del database, c'è una scansione dei pool per trovare spazio per l'utente per trovare una connessione aperta. La maggior parte dei programmi di pool di connessioni ha un elenco set di utenti massimi per pool e le impostazioni minime di tempo per le quali una connessione può rimanere inattiva prima che la connessione venga eliminata e la disponibilità viene restituita al pool.
Nella creazione di un pool di connessioni, un certo numero di oggetti di connessione viene creato e aggiunto al pool. Affinché un pool sia considerato attivo, ha bisogno di un numero minimo di oggetti. Questi oggetti di connessione sono i sedili di disponibilità che legano una connessione al pool e possono essere creati e aggiunti al pool, se necessario, fino al massimo ammissibileall'interno di una piscina. Poiché gli utenti sono soddisfatti della loro interrogazione e abbandonare il proprio oggetto di connessione, gli oggetti vengono restituiti al pool dai programmi di pooling per l'uso da un altro utente o dallo stesso utente quando torna.
Un fattore che può rallentare i tempi di risposta nel pooling di connessione è ciò che viene chiamata frammentazione del pool. La frammentazione del pool di solito si verifica a causa della sicurezza integrata o di troppi database risiedono su un set di server esistente. Un sistema di gestione del database che autentica gli utenti e quindi la coda o l'assegnazione agli oggetti del pool di connessioni esistenti drena la memoria e una progettazione di sistema più stretta per gli accessi spesso risolve il problema delle database. La progettazione integrata del sistema di sicurezza dei programmi basati su Windows in molti programmi di pooling di connessione richiede che un solo utente basato su Windows risieda all'interno di un pool alla volta. Questo può essere chiarito dalla creazione di più pool per soddisfare le richieste aggiuntive che devono essere risposte contemporaneamente.
Se il programma di pooling della connessione rileva un utente è stato inattivo oltre un periodo di tempo prestabilito o la connessione è stata recisa, restituirà l'oggetto di connessione al pool come oggetto non valido. Se un server si riduce mentre una connessione è in vigore, la connessione può comunque essere ritirata anche se il pool di connessioni non è a conoscenza della connessione recisa. I programmi ActiveX Connection-Pool di solito procedono quindi a cancellare il pool di queste connessioni man mano che il server viene riavviato.