Tomcat-JDBC-connection pool (releasing-Verbindung)
Bezogen auf Tomcat-JBDC-Verbindung pool, sehe ich in der standalone-java-Beispiel wird dort angegeben, erhält man die Verbindung mit datasource.getConnection()
die ist cool. Aber in den finally-block, es sagt con.close()
.
Frage: Wenn ich dies umzusetzen, ist es offensichtlich, dass die con
ich von datasource wird geschlossen werden jedes mal, wenn in der schließlich. Wenn dieses geschlossen ist, wird der connection pooling Mechanismus, erwerben Sie eine neue Verbindung und fügt es an den pool?
Ich nehme an, es sollte eine Methode nennen wie releaseConnection()
lassen, wird der pool seine eigene Entscheidung, ob, um es zu schließen, oder lassen Sie es offen sein für eine andere Verwendung.
Ich habe auch versucht dies zu tun ConnectionPool aPool = datasource.createPool();
Aber ich sehe, es ist nichts, wie release-Verbindung auf dieser aPool
.
Denke ich, bin ich hier etwas fehlt?
Dankbar für Ihre Hilfe.
Code-snippet aus Tomcat-JBDC-Verbindung pool:
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) {}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit dem aufrufen der close() auf eine Methode, die durch den pool-es ist bis zu den pool, was im inneren der Aufruf dieser Methode. Es muss nicht zwangsweise in der Nähe der gepoolten Datenbank-Verbindung - es kann nicht etwas Aufräumen und dann fügen Sie die Schnittstelle zurück an den pool.
Dies ist bereits beantwortet in Schließen von JDBC-Verbindungen im Pool
OK, mein Fehler, dass ich nicht sehen, die Umsetzung der
DataSource
.Es erstreckt sich
DataSourceProxy
, die intern erstellt einen pool vor der Rückkehr einConnection
auf der Grundlage derPoolProperties
Ich verstehen, die bis zu dieser DataSource zu behandeln, die verbindungen, obwohl ich in der Nähe der
con
im schließlich Datenquelle kann die erforderlichen Maßnahmen ergreifen.Tun fügen Sie einen Kommentar/Antwort, wenn jemand anders denkt.
Beispiel, dass zeigt nur
how to create and use a data source
. Für Verbindungspool auf Tomcat konfigurieren SieJNDI
.Zitat von Wie Verbindungspooling funktioniert in Java und JDBC: