Überprüfen Sie, wie Sie das Zeitlimit festlegen, wenn Sie eine Verbindung zu Spring + HikariCP + MySQL herstellen und SQL ausführen.
Eine Umgebung, die Maßnahmen ergreift
Frühlingsbeziehungen: 5.0.9 HikariCP:2.7.9 MySQL:5.7
Mit setConnectionTimeout () für eine Instanz von HikariDatasource festlegen.
@Bean
HikariDataSource datasource() {
HikariDataSource ds = new HikariDataSource();
ds.setJdbcUrl("jdbc:mysql://localhost:3306/test?useSSL=false&socketTimeout=10");
ds.setConnectionTimeout(250); //★ Hier
ds.setUsername("user");
ds.setPassword("password");
return ds;
}
↓ Einstellung der Anwendungseigenschaften
spring.datasource.hikari.connection-timeout=Zeitüberschreitung (Millisekunden)
Fügen Sie der JDBC-URL den Parameter socketTimeout hinzu.
@Bean
HikariDataSource datasource() {
HikariDataSource ds = new HikariDataSource();
ds.setJdbcUrl("jdbc:mysql://localhost:3306/test?useSSL=false&socketTimeout=10"); //★ Hier
ds.setConnectionTimeout(250);
ds.setUsername("user");
ds.setPassword("password");
return ds;
}
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&socketTimeout=Zeitüberschreitung (Millisekunden)
Unter ↓ finden Sie Informationen zum Reproduzieren der Netzwerkverzögerung in einer Windows-Umgebung. So reproduzieren Sie die Netzwerkverzögerung lokal in Windows
Der als Beispiel geschriebene Code lautet Verbindungszeitlimit: 250 ms Kommunikationszeitlimit nach Verbindung: 10 ms Überprüfen Sie daher, ob die Ausnahme wie erwartet angezeigt wird, indem Sie die folgenden Schritte ausführen.
Unten sind die Schritte.
In Bezug auf die Protokollausführungszeit wird das Ausnahmeprotokoll nicht gemäß der angegebenen Millisekunde angezeigt. Ich denke, dass der Timeout-Einstellwert und der Delay-Einstellwert wie beabsichtigt ablaufen, also denke ich, dass das Timeout-Urteil selbst durchgeführt werden kann, aber ... Ein Geheimnis.
Recommended Posts