Tomcat pool de connexions JDBC (la libération de la connexion)
Se référant à Tomcat JBDC pool de connexion, je vois dans la version autonome de java exemple donné, on obtient la connexion à l'aide de datasource.getConnection()
qui est cool. Mais dans le bloc finally, il est dit con.close()
.
Question: Quand je le mettre en œuvre, il semble évident que la con
- je obtenir à partir de la source de données sera fermé à chaque fois dans la enfin. Quand c'est fermé, la connexion mécanisme de mise en commun d'acquérir une nouvelle connexion et l'ajoute à la piscine?
Je suppose qu'il doit y avoir un appel de méthode comme releaseConnection()
qui permettra à la piscine de prendre sa propre décision de le fermer ou de le laisser ouvert pour une autre utilisation.
J'ai aussi essayé de faire ce ConnectionPool aPool = datasource.createPool();
Mais je vois qu'il n'y a rien comme la libération de la connexion sur ce aPool
.
Je pense que je suis absent quelque chose ici?
Reconnaissant de votre aide.
Extrait de Code de Tomcat JBDC pool de connexion:
DataSource datasource = new DataSource();
datasource.setPoolProperties(p);
Connection con = null;
try {
con = datasource.getConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from user");
int cnt = 1;
while (rs.next()) {
System.out.println((cnt++)+". Host:" +rs.getString("Host")+
" User:"+rs.getString("User")+" Password:"+rs.getString("Password"));
}
rs.close();
st.close();
} finally {
if (con!=null) try {con.close();}catch (Exception ignore) {}
}
OriginalL'auteur Harsh .. | 2013-05-07
Vous devez vous connecter pour publier un commentaire.
Puisque vous appelez le close() sur une méthode obtenus par la piscine, il est à la piscine que faire à l'intérieur l'appel de cette méthode. Il n'est pas impérativement nécessaire de fermer à la mise en commun des données de connexion, il peut faire un peu de ménage, puis ajouter la connexion de retour à la piscine.
C'est déjà répondu dans La fermeture de Connexions JDBC dans la Piscine
OriginalL'auteur mschenk74
OK, my bad, je n'ai pas la mise en œuvre de
DataSource
.Il s'étend
DataSourceProxy
qui crée en interne d'une piscine avant de retourner unConnection
basé sur laPoolProperties
Je comprends, son jusqu'à cette source de données pour gérer les connexions, même si je ferme la
con
enfin, la source de données peut prendre les mesures nécessaires.Faire ajouter un commentaire/répondre si quelqu'un pense le contraire.
OriginalL'auteur Harsh ..
Cet exemple ne montre
how to create and use a data source
. Pour le pool de connexion sur Tomcat, vous pouvez configurerJNDI
.Citation de Comment le regroupement de connexion fonctionne en Java et JDBC:
OriginalL'auteur Sam Rad