2010-01-20 11 views
5

Sto provando a implementare una soluzione con c3p0 per la prima volta. Capisco come inizializzare il pool di connessioni e "out" di una connessione dal pool come segue:c3p0 Controllo connessione

ComboPooledDataSource cpds = new ComboPooledDataSource(); 
cpds.setDriverClass(driverClass); 
cpds.setJdbcUrl(url); 
cpds.setUser(username); 
cpds.setPassword(password); 
Connection conn = cpds.getConnection(username, password); 

Ma io sto avendo problemi a trovare il modo di "check-in" una connessione già usato per tornare in piscina. Come potrei fare questo? C'è qualcosa che sto facendo di sbagliato qui?

risposta

5

La liberazione è totalmente trasparente per l'utente. Vedi here per ulteriori spiegazioni.

Essere sicuro di chiudere() la connessione e non tenere più alcun riferimento (che eviterebbe il corretto GC).

+0

Grazie, funziona! – jtbradle

+0

il collegamento sta parlando di "Pulizia dopo c3p0 PooledDataSources", e non rilasciando la connessione ... forse il collegamento è cambiato dal 2010 .... – OhadR

4

Credo che la connessione venga restituita alla piscina quando la si chiude.

+2

Mi chiedevo se fosse così. Quindi non è davvero chiuso nella fonte dei dati? Suppongo che c3p0 avvolga solo l'implementazione della connessione dell'origine dati, intercetta la chiamata close() e riutilizza la connessione. È corretto? – jtbradle

Problemi correlati