Anche se non ho modo di saperlo, mi azzarderei a indovinare che il tuo collega ha iniziato con ogni richiesta recuperando una nuova connessione dal gestore, proprio come è stato fatto nei programmi per principianti e demo. Ben presto scoprì che questa richiesta rallentava drasticamente; quindi ora evita la creazione di connessioni "raggruppandole" nelle sessioni utente.
Questo risolve il problema di prestazioni per gli utenti che effettuano una seconda e successive richieste su una connessione, ma è una soluzione molto scomoda e non scalabile. Se la base utenti della tua applicazione cresce, il numero di utenti con sessioni aperte supererà rapidamente il numero massimo di connessioni che il DB può darti. E poi ci sono problemi con le sessioni o le connessioni DB che scadono ...
La soluzione "standard di settore" consiste nell'utilizzare il pool di connessioni. Le versioni moderne di Tomcat dispongono del pool di connessioni "integrato", così come altri server di applicazioni Web. In caso contrario, puoi installare facilmente la tua. Ciò consente di gestire un pool di connessioni in modo completamente indipendente dalle sessioni utente.
Un altro vantaggio del pool di connessioni è che, una volta che il pool è "riscaldato", vale a dire.un certo numero di connessioni sono in uso e inizializzate, anche le "prime richieste per sessione utente" ricevono rapidamente una connessione. Quindi il throughput complessivo sarà migliorato rispetto alla situazione attuale.
fonte
2010-07-15 12:24:01
Forse dovresti spiegarci perché pensi che non dovrebbe farlo prima? –
@ Thorbjørn Credo che la mia reazione iniziale sia stata perché non l'ho mai visto prima. Ma sembra sciocco creare 1000 connessioni JDBC per 1000 utenti ... – jconlin
C'è qualcosa di speciale su ciascuna connessione o potrebbero essere facilmente raggruppate? –