2017-03-03 4 views
0

Je tente d'utiliser le regroupement de connexions à l'aide d'apache dbcp2.Java DBCP2 Le regroupement de connexions crée une connexion agian après la fermeture de la connexion maximale

Ma connexion maxTotal est 5. Je ferme toutes les connexions après utilisation.

Mais quand même, je me connecte après 5 connexions fermées du pool de connexions.

avec la commande ping de la base de données pour obtenir la connexion après la fermeture de 5 connexions? ou il obtiendra du pool de connexion lui-même sans aller db.

Voici mon extrait de code. Veuillez corriger ma compréhension de la mise en commun des connexions.

BasicDataSource bds = getBasicDataSource(); 

System.out.println (bds.getMaxTotal()); // Prints - 5 

for (int i=0; i<10; i++) { 
    conn = bds.getConnection(); 
    System.out.println("Conn "+conn); // conn object printing different values for all 10 connections 
    conn.close(); 
} 

Répondre

0

La connexion d'un client obtient d'une piscine est pas vraiment un java.sql.Connection, il est un wrapper (proxy) pour une java.sql.Connection qui personnalise le comportement de certaines méthodes. La méthode close() en fait partie et ne ferme pas l'instance de Connection mais la renvoie au pool. Essayez d'utiliser C3PO, de mon point de vue c'est mieux que DBCP.