Wie kann ich mildern Verbindung Leck ausgelöst für den Anschluss com.mysql.jdbc.JDBC4Connection@11d08960,

Habe ich ein mqtt-client erste Anfrage das abonnieren von Themen,
und dann gebe ich es zu-threadpool fester Größe 50.
Im mit hikaricp 2.4.2 für DB-Pooling MySQL-Datenbank.

Ich bin jetzt mit 2.4.2 und das ist mein setup

    HikariConfig config = new HikariConfig();
    config.setDataSourceClassName(CLASS_FOR_NAME);
    config.setJdbcUrl(HOST);
    config.setUsername(USER);
    config.setPassword(PASS);
    config.addDataSourceProperty("cachePrepStmts", "true");
    config.addDataSourceProperty("prepStmtCacheSize", "250");
    config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
    config.setLeakDetectionThreshold(TimeUnit.SECONDS.toMillis(30));
    config.setValidationTimeout(TimeUnit.MINUTES.toMillis(1));
    config.setMaximumPoolSize(10);
    config.setMinimumIdle(0);
    config.setMaxLifetime(TimeUnit.MINUTES.toMillis(2)); //120 seconds 
    config.setIdleTimeout(TimeUnit.MINUTES.toMillis(1)); //minutes
    config.setConnectionTimeout(TimeUnit.MINUTES.toMillis(5)); 
    config.setConnectionTestQuery("/* ping */SELECT 1");

Hier ist der vollständige log-Meldung :

WARNLOG:

811439 [Hikari Haushälterin (pool HikariPool-0)] WARNEN
com.zaxxer.hikari.pool.ProxyLeakTask - Verbindung Lecksuche
ausgelöst für den Anschluss com.mysql.jdbc.JDBC4Connection@11d0896 stack
trace folgt java.lang.Ausnahme: Offensichtlicher Zusammenhang Leck entdeckt
bei com.hcpdatabase.DataSource.getConnection(DataSource.java:69)
bei com.Datenbank.AccessDatabase.create_alert(AccessDatabase.java:3849)
bei com.lauffaehig.StartTaskRunnable2.execute(StartTaskRunnable2.java:78)

Ist das normal ? muss ich fangen?

Nun, es hängt davon ab, willst du zu Leck-verbindungen? Warum gehst du nicht zeigen Sie uns Ihre DataSource Klasse, wissen Sie, wo das Leck erkannt wird.
Schließen Sie Ihre Connections?
ja, eigentlich manchmal gibt es einige burst-Transaktionen 30 Transaktionen in einer Sekunde, ich denke, das ist, warum es nicht thread-sicher(denke ich).
Ich habe immer mit try{}finally{// Verbindung schließen hier} die ganze Zeit.
Ich sagte nie etwas über thread-Sicherheit. Undichte Verbindung sind eine sehr einfache Sache, Sie heraus überprüfen einer Verbindung, aber niemals schließen (d.h. es wieder zurück an den pool). Wenn du mit try/finally (oder try-mit-Ressourcen) konsequent überall, es sollte keine undichten verbindungen.

InformationsquelleAutor david | 2015-11-24

Schreibe einen Kommentar