Oracle
 sql >> Database >  >> RDS >> Oracle

Concetti fondamentali di JDBC, Pooling e Threading

I pool di connessioni decorano le istanze di Connection e Statement con le proprie implementazioni di wrapper. Quando chiami la chiusura di una connessione, in realtà la stai semplicemente rilasciando di nuovo nel pool. Quando chiami close su un'istruzione preparata, in realtà la stai semplicemente rilasciando nella cache delle istruzioni della connessione. Quando prepari un'istruzione, potresti semplicemente recuperare un'istanza di istruzione memorizzata nella cache dalla connessione. Tutto questo è nascosto alla vista in modo che tu non debba preoccupartene.

Quando una connessione viene fornita a un client, non è più disponibile per l'utilizzo da parte di altri client fino a quando la connessione non viene rilasciata nuovamente al pool. In genere prendi le connessioni quando ne hai bisogno e poi le restituisci non appena hai finito con loro. Poiché le connessioni vengono mantenute aperte nel pool, il carico e il carico di lavoro ridotti per il recupero e il rilascio delle connessioni.

Dovresti utilizzare una connessione dal pool proprio come faresti con una singola connessione JBDC e seguire le migliori pratiche relative alla chiusura delle risorse in modo da non perdere connessioni o dichiarazioni. Vedi gli esempi try/catch/finally in alcune delle altre risposte.

I pool possono gestire le risorse di connessione e testarle prima di distribuirle ai client per assicurarsi che non siano obsolete. Inoltre, un pool creerà e distruggerà le connessioni secondo necessità.