Hikari Pool Connection Validation

OnDemand

Top Contributor
Hallo zusammen,

ich habe einen Connection Pool wie unten, allerdings bekomme ich ständig folgende Fehlermeldungen und die Verbindungen sind geschlossen. Hat jemand ne Idee?

No operations allowed after statement closed.
Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@20221c8d (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.

Code:
HikariConfig config = new HikariConfig();
                    config.setJdbcUrl(tenantProperties.getProperty("datasource.url") + "&serverTimezone=" + TimeZone.getDefault().getID());
                    config.setUsername(tenantProperties.getProperty("datasource.username"));
                    config.setPassword(tenantProperties.getProperty("datasource.password"));
                    config.setPoolName(tenantId);
                    config.setMaximumPoolSize(5);
                    HikariDataSource ds = new HikariDataSource(config);
                    ds.setIdleTimeout(600000);

Hab schon maxLifeTime gesetzt auf verschiedene Werte, aber bringt nix. Meine DB hat standard 28800s wait_timeout hat das damit irgendwas zu tun?

Hier in der Methode kommt der Fehler (Hibernate kümmert sich ums das Schließen der Verbidnungen bzs zurückgeben in den Pool mit Spring boot)

Code:
private void doWork(){}
Session hibernateSession = em.unwrap(Session.class);
            hibernateSession.doWork(new org.hibernate.jdbc.Work() {
                @Override
                public void execute(Connection connection) {
                //do da work Prepeared Statement
                }
}
 

OnDemand

Top Contributor
Danke, aber was ist der HA Proxy Timeout? In Mysql sehe ich massig logs "is marked as crashed and should be repaired" aber die sind ok, Tabellen kann ich aufrufen
 

mihe7

Top Contributor
Wenn ich es richtig verstehe, dann muss der Werte von wait_timeout (SHOW VARIABLES like '%timeout%') gleich oder sogar etwas größer sein als maxLifeTime. Oder irgendwas anderes schließt die Connection, z. B. im Code.
 

OnDemand

Top Contributor
Der RAM ist scheinbar nicht ausreichend :( Zu viele Connections im Pool. MaxLifetime setz ich mal auf 10% unter wait_timeout
 

LimDul

Top Contributor
Ich bin gerade verwirrt - ist der Sinn eines Pools, dass ich nicht eben für jeden User X-Connections vorhalte sondern einen globalen Pool?
 

OnDemand

Top Contributor
Es gibt mehrere Pools, pro Tenant 1 pool. Man könnte vielleicht auch einen Pool mit allen Verbindungen machen
Hab jetzt auf 2 Verbindungen reduziert, hoffe dass es reicht. Keine Möglichkeit RAM zu erhöhen die Tage :/
 

OnDemand

Top Contributor
Die Tenants in der gleichen DB wie meinst du das? Jeder Tenant hat eine eigene DB auf einem großen Server, vielleicht 100 tenants derzeit

Jetzt viel mir auf, dass der RAM wächst, unser Programm macht stündlich was auf die Datenbanken und jedesmal wächst der RAM des DB Servers um 200BM anstatt nach dem Abarbeiten der Queries wieder weniger zu werden.
 

mihe7

Top Contributor
Jeder Tenant hat eine eigene DB auf einem großen Server, vielleicht 100 tenants derzeit
Das wären also etwa 200 Connections. Die sollten IMO nicht das Problem darstellen.

Jetzt viel mir auf, dass der RAM wächst, unser Programm macht stündlich was auf die Datenbanken und jedesmal wächst der RAM des DB Servers um 200BM anstatt nach dem Abarbeiten der Queries wieder weniger zu werden.

https://blog.pythian.com/mysql-memory-consumption/ enthält interessante Infos zum Speicherverbrauch.
 

OnDemand

Top Contributor
Die Mysql Variablen sind alle default :/ Das ist echt merkürdig, nicht mal der neustart des angebundenen Service macht den RAM auf dem DB Server frei. Also muss mysql da iwas speicehrn. Das geht so lange gut bis er voll ist und die Connections schließt.

Muss ich vielleicht in meiner og Methode irgendwas schließen? Laut einiger Beiträge darf die connection nicht geschlossen werden. Wenn ich das Prepeared Stement schließe kommt auch wieder irgendeine Fehlermeldung.
 

mihe7

Top Contributor
Laut einiger Beiträge darf die connection nicht geschlossen werden.
Die Connection muss vom Connection Pool geschlossen werden - dafür ist er ja da. Es ist auch normal, dass die DB Speicher frisst - das soll so sein, denn alles, was im Speicher liegt, kann ohne I/O in die Peripherie beantwortet werden. Nur sollte es natürlich nicht zu viel werden. Was allerdings interessant ist: dass das Speicher beim Schließen der Connection freigegeben wird. Das hört sich nach verbindungsbezogenen Daten an. Gem. der Formel aus dem Blog würde ich mir read_buffer_size, join_buffer_size, read_rnd_buffer_size, thread_stack und max_packet_size ansehen.
 

OnDemand

Top Contributor
Danke, ich kann damit leider nicht so viel anfangen. Meiner Meinigung nach sind das alles Standardwerte (die vielleicht nicht immer gut sind)

Folgende Werte sind gemäß Konsole gesetzt:
read_buffer_size=131072
join_buffer_size =262144
read_rnd_buffer_size = 262144
thread_stack = 299008
max_packet_size EMTPY SET
 

OnDemand

Top Contributor
Also es scheint so, dass ein bestimmter Service Schuld ist. Der ballert einfach verdammt viel Daten an die DB. Was aber komisch ist, dass die DB den RAM nicht freigibt sondern einfach iwann die Connections killed.
 

LimDul

Top Contributor
Mal ganz doof gefragt - diese verdammt viele Daten, ist das eine Transaktion oder mehrere? Weil wenn das eine Transaktion ist, kann ich mir vorstellen, dass die eher im RAM gehalten wird, als wenn es mehrere sind.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Connection Pool Hikari Datenbankprogrammierung 7
S Hikari SQL Poolconnection catch Exeption Datenbankprogrammierung 6
K Glassfish 4.1.1 Connection Pool u. Resource Ref Datenbankprogrammierung 20
F Monitoring DB Connection Pool Datenbankprogrammierung 3
T Pooled Connection und Connection Pool Datenbankprogrammierung 2
S Connection Pool Datenbankprogrammierung 23
A Zugriff auf DB-Pool, der von Servlet initialisiert wurde Datenbankprogrammierung 4
R Interessantes Problem mit Connection-Pool. Datenbankprogrammierung 2
G Pool Exhausted Fehlermeldung Datenbankprogrammierung 7
H Connection Pool + Tomcat + Oracle10g Datenbankprogrammierung 7
Maxim6394 EclipseLink + SQLite | Unable to acquire a connection from driver [null] Datenbankprogrammierung 6
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
S Oracle DB-Connection in .jar file ändern Datenbankprogrammierung 11
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
Dimax MySQL Methodenaufruf mit Connection Übergabe Datenbankprogrammierung 8
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
P MySQL Connection Global Datenbankprogrammierung 13
J Connection Datenbankprogrammierung 1
F Brauche dringend Hilfe Java-Access Connection Datenbankprogrammierung 3
S New Connection Wizard / NetBeans Datenbankprogrammierung 0
P Frage zu Connection.close() Datenbankprogrammierung 4
T NoSQL Connection für die Thesis [GWT] Datenbankprogrammierung 1
M Connection erstellen Datenbankprogrammierung 1
H JDBCODBC - Connection-Objekt Datenbankprogrammierung 3
E MySQL SQL - wann connection schließen Datenbankprogrammierung 2
R HSQLDB Connection refused Datenbankprogrammierung 2
B JDBC Connection Fehler Datenbankprogrammierung 8
B JDBC-Connection: Data source name too long Datenbankprogrammierung 3
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
reibi Derby/JavaDB Connection refused Datenbankprogrammierung 14
S Ressourcenverbrauch Connection Open/Close Datenbankprogrammierung 11
W MySQL-Connection-Objekt übergeben Datenbankprogrammierung 2
N SQL-Connection Datenbankprogrammierung 3
B MySQL Datenbank Connection als String zurückgeben Datenbankprogrammierung 7
M Connection Pooling Datenbankprogrammierung 7
B MySQL Fehler: Cannot open connection mit Tomcat7, Hibernate und MySQL Datenbankprogrammierung 4
K Connection - möglich & nicht möglich Datenbankprogrammierung 2
T Datenbank connection mit Servlet Datenbankprogrammierung 4
S Applet stucks at SQL Connection (jTDS JDBC) Datenbankprogrammierung 15
c_sidi90 JDBC Oracle Connection schlägt fehl Datenbankprogrammierung 2
H H2 H2-Connection bei WebStart Datenbankprogrammierung 6
JavaKaffee Derby/JavaDB Quartz-WebAnwendung - Connection/Treiber Problem Datenbankprogrammierung 47
ruutaiokwu jdbc connection als singleton Datenbankprogrammierung 11
S Wie überprüfe ich ob die Instanz einer Connection gerade werwendet wird? Datenbankprogrammierung 4
X Connection schließen oder speichern? Performance Frage Datenbankprogrammierung 7
C Derby/JavaDB JavaDB: Keine Connection Datenbankprogrammierung 7
S Java Connection to MySQL Datenbank FunPic Datenbankprogrammierung 4
Q java.lang.NullPointerException connection = null Datenbankprogrammierung 13
N Connection bleibt null Datenbankprogrammierung 7
H DB-Connection zu MySQL Datenbankprogrammierung 12
D Wie bekommt man die JDBC connection zum laufen?(Eclipse) Datenbankprogrammierung 16
T MySQL ResultSet zurückgeben nachdem Connection geschlossen wurde? Datenbankprogrammierung 3
B db2 jdbc connection Datenbankprogrammierung 4
G MySQL Connection Problem Datenbankprogrammierung 3
R sql.Connection vs. mysql.Connection Datenbankprogrammierung 3
R Connection Pooling - Tote Verbindungen Datenbankprogrammierung 5
P JPA Connection dynamisch hinzufügen Datenbankprogrammierung 2
S JDBC connection open Datenbankprogrammierung 3
D MySQL Verständnisproblem mit globalen Variablen (Connection) Datenbankprogrammierung 7
F Connection refused: connect Bei Verbindungsherstellung zu MySQL Datenbank Datenbankprogrammierung 3
R Connection Problem für eine externe DB mit Java (JDBC) Datenbankprogrammierung 9
R Connection nur als root Datenbankprogrammierung 3
N Connection kann nicht geschlossen werden!? Datenbankprogrammierung 4
S JPA Hibernate: "The user must supply a jdbc connection" Datenbankprogrammierung 4
F MySQL - Connection JDBC-Driver Problem Datenbankprogrammierung 4
E MSSQL-Server connection aufbau sehr langsam Datenbankprogrammierung 2
S Zuviele DB Connection Datenbankprogrammierung 4
A Connection Variable in anderer Klasse verwenden -> statement Datenbankprogrammierung 2
S Connection String MS Access mit Systemdatenbank / Arbeitsgruppeninformationsdatei Datenbankprogrammierung 4
R DB-Connection, aber wie? Datenbankprogrammierung 2
F Java SQL Connection mit Rollback Datenbankprogrammierung 2
P DB- Connection lösen Datenbankprogrammierung 7
padde479 Connection String Oracle Datenbankprogrammierung 5
W JDBC Connection isValid()? Datenbankprogrammierung 4
G Frage zu connection? Datenbankprogrammierung 9
G allgemeine JDBC-Connection Frage Datenbankprogrammierung 2
H Wie kann ich eine Datenbank Connection aus XML-Datei lesen! Datenbankprogrammierung 2
J jdbc Oracle Connection refused Datenbankprogrammierung 6
D Probleme mit mysql-Connection Datenbankprogrammierung 10
K Wo "Connection" Object erstellen? Datenbankprogrammierung 7
N Kleine Frage zu Connection Pooling mit DataSource Datenbankprogrammierung 2
M Hilfe - keine Connection zur DB Datenbankprogrammierung 4
G Connection zu einer Oracle DB erstellen Datenbankprogrammierung 8
K Oracle XE Connection Problem Datenbankprogrammierung 2
S Connection/Statement/ResultSet auf einmal geschlossen Datenbankprogrammierung 8
C Resultset nach connection close weiterreichen Datenbankprogrammierung 5
G SQL Server Connection Datenbankprogrammierung 12
K "Connection timed out: connect" bei MySQL-Verbindu Datenbankprogrammierung 10
R Warum ist meine Connection null? Datenbankprogrammierung 6
B Connection Pools Datenbankprogrammierung 3
U Connection läuft nicht als jar Datenbankprogrammierung 6
C Statement/Connection SQLWarning Datenbankprogrammierung 4
P Connection problems Datenbankprogrammierung 15
J Keine Connection zur MySQL Db Datenbankprogrammierung 6
K db connection wann schließen Datenbankprogrammierung 4
W Problem bei Connection mit SQLServer-Datenbanke mittels Java Datenbankprogrammierung 2
S Viele Klassen sollen eine Connection benutzen Datenbankprogrammierung 3
K Connection error Datenbankprogrammierung 18
G SQLException: No operations allowed after connection closed Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben