Volevo solo conoscere il concetto di pool di connessioni al database e come è stato realizzato.Che cos'è il pool di database?
risposta
Database collegamento Il pool è un metodo utilizzato per mantenere le connessioni del database aperte in modo che possano essere riutilizzate da altri.
In genere, l'apertura di una connessione al database è un'operazione costosa, soprattutto se il database è remoto. Devi aprire le sessioni di rete, autenticarti, verificare l'autorizzazione e così via. Il pooling mantiene attive le connessioni in modo tale che, quando viene richiesta una connessione successiva, uno di quelli attivi venga utilizzato preferibilmente per doverne creare un altro.
riferimento al diagramma seguente per i prossimi paragrafi:
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
Nella sua forma più semplice, è solo una chiamata API simile (1) per una chiamata API open-connessione che è simile al "real " uno. Questo controlla innanzitutto il pool per una connessione adeguata (2) e, se disponibile, viene fornito al client. Altrimenti viene creato un nuovo (3).
Analogamente, c'è una chiamata API stretta (4) che in realtà non chiama la reale close-connection, piuttosto mette la connessione nel pool (5) per un uso successivo. A un certo punto, le connessioni in piscina potrebbero essere in realtà chiuse (6).
Questa è una spiegazione piuttosto semplicistica. Le implementazioni reali possono essere in grado di gestire connessioni a più server e più account utente, possono pre-allocare alcune linee di base delle connessioni in modo che alcune siano pronte immediatamente e potrebbero effettivamente chiudere le vecchie connessioni quando il modello di utilizzo si attenua.
È possibile utilizzare la libreria Commons Apache per il pool di connessioni implementazione in modo trasparente: http://commons.apache.org/dbcp/
DBCP è anche un pool di Hibernate supportato: http://www.informit.com/articles/article.aspx?p=353736&seqNum=4
Concetto di pooling di connessioni non solo in Java ma in molti linguaggi di programmazione. La creazione di un nuovo oggetto di connessione è costosa, quindi un numero fisso di connessioni viene creato e mantenuto nel ciclo di vita creando un pool virtuale) vedi domanda 14 in questa pagina
Da dove si ottiene il piccolo grafico? –
L'ho fatto da zero (stupido me). Se vuoi vedere una grafica decente, dai un'occhiata alla risposta di zengr. – paxdiablo
Grazie mille ... paxdiablo per spiegazione e grafico. – sagar27