Ich sehe, dass Leerlaufverbindungen nicht gelöscht werden. Ich bin mir nicht sicher, was der Grund ist?DBCP2 BasicDataSource Inaktive Verbindungen werden nicht gelöscht
Urspr-10 maxtotal-20 maxIdle-10 minidle-0 minEvictableIdleTimeMillis-30min numTestsPerEvictionRun-60min numTestsPerEvictionRun-20 testOnBorrow-true testWhileIdle-true validation-select 1 von dual
Von verschiedenen Quellen vorausgesetzt das folgende ist mein Verständnis maxtotal- maxactive Verbindungen zu Datenquelle, die 20 in oben genannten Fall ist
maxidle - Anzahl der Verbindungen im Leerlauf, die im Pool verbleiben können. diese werden vom Kehrer entfernt. Im obigen Fall ist eine Verbindung inaktiv, wenn sie 30 Minuten lang inaktiv ist. Wenn der Sweeper alle 60 Minuten läuft, prüft er 20 freie Verbindungen zu und löscht ungenutzte Verbindungen. Leerlaufverbindungen, die diese überschreiten, werden sofort geschlossen.
Ist das obige Verständnis korrekt?
ich BasicDataSourceMXBean verwende die Statistiken zu drucken
{ "NumActive": "0", "NumIdle": "10", "isClosed": "false", "maxTotal": "20",“ MaxIdle ":" 10 "," MinIdle ":" 0 "}
Die Leerlaufverbindungen werden nie gelöscht, obwohl kein Datenverkehr vorhanden ist. Ist in der obigen Konfiguration etwas falsch?
Auch was ist minIdle und wann sollten wir es auf einen Wert ungleich null setzen?
Kürzlich aktualisierte Hibernate-Version von 3.6.0.Final zu überwintern 4.3.11.Final und Frühjahr 4.2.9 von älteren Frühjahr-Version.
Früher wurden die Leerlaufverbindungen gelöscht. Aber seit dem Upgrade werden die Leerlaufverbindungen nicht gelöscht.
Sind Sie sicher, dass die Einstellung nicht "testWhileIdle" anstelle von "testOnIdle" sein sollte, damit inaktive Verbindungen entfernt werden? – Naros