SetIdleTimeout und setKeepaliveTime funktionieren nicht mit MySQL wait_timeout | HikariCP | Spring Boot 2.6.3 | MySQL 8Java

Java-Forum
Guest
 SetIdleTimeout und setKeepaliveTime funktionieren nicht mit MySQL wait_timeout | HikariCP | Spring Boot 2.6.3 | MySQL 8

Post by Guest »

Szenario 1:

Spring Boot 2.6.3
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName(dataSourceProperties.getDriver());
hikariConfig.setUsername(dataSourceProperties.getUsername());
hikariConfig.setPassword(dataSourceProperties.getPassword());
hikariConfig.setJdbcUrl(jdbcUrl);
hikariConfig.setMaximumPoolSize(1);
hikariConfig.setMinimumIdle(0);
hikariConfig.setIdleTimeout(5000); //5 Seconds
return new HikariDataSource(hikariConfig);

MySQL 8
wait_timeout = 30 //30 Seconds
Nach meinem Verständnis von HikariCP mit Spring Boot und MySQL 8 sollte die ideale Verbindung nach 5 Sekunden entfernt werden, wenn ich PROCESSLIST in MySQL überprüfe, ob sie aktiv ist für 30 Sekunden, was dem wait_timout der MySQL-Verbindung entspricht.

Szenario 2:

hikariConfig.setKeepaliveTime(40000); //40 Seconds
Die Verbindung sollte 40 Sekunden lang aktiv sein, aber nach 30 Sekunden getrennt werden, was dem wait_timout der MySQL-Verbindung entspricht.
Das war ich Testen, wie HikariCP in zwei Szenarien mit Spring Boot 2.6.3 und MySQL 8 mit inaktiven Verbindungen umgeht, konfiguriert wie folgt:

Szenario 1:

  • HikariCP emptyTimeout auf 5 Sekunden eingestellt.
  • MySQL wait_timeout auf 30 Sekunden eingestellt.
Ich habe erwartet, dass HikariCP inaktive Verbindungen nach 5 Sekunden entfernt. Als ich jedoch die MySQL-PROZESSLISTE überprüfte, blieben die Verbindungen 30 Sekunden lang aktiv, was dem MySQL-Wartezeitlimit entsprach.

Szenario 2:

  • HikariCP keepaliveTime auf 40 Sekunden eingestellt.
  • MySQL wait_timeout immer noch 30 Sekunden.
Ich habe erwartet, dass die Verbindungen aufgrund der keepaliveTime-Konfiguration 40 Sekunden lang aktiv bleiben. Stattdessen wurden sie nach 30 Sekunden geschlossen, wobei MySQLs wait_timeout berücksichtigt wurde.
Ich würde gerne verstehen, warum sich HikariCP so verhält und wie diese Konfigurationen mit MySQLs wait_timeout interagieren .

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post