2017-06-26 7 views
1

ich mit springboot mit HikariCP, aber nach einer Weile meine app Absturz und ich den Fehler bekam:Springboot HikariCP

org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection 
... 

Caused by: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection 

.... 
Caused by: java.sql.SQLTransientConnectionException: HikariPool-6 - Connection is not available, request timed out after 30000ms. 

Das ist mein aplication.properties

spring.datasource.type=com.zaxxer.hikari.HikariDataSource 
spring.datasource.url=jdbc:postgresql://localhost:5432/db_dnaso 
#spring.datasource.url=jdbc:postgresql://172.16.1.10:5432/db_dnaso 
spring.datasource.username=postgres 
spring.datasource.password=dna44100 
spring.datasource.driver-class-name=org.postgresql.Driver 

So habe ich eine Menge Speichern, finden und andere Zugriffe auf DB, wie kann ich visualisieren, wie Methoden meine Verbindung blockieren?

tks

Antwort

0

Aktivieren Sie die leakDetectionThreshold, auf so etwas wie 1 Minute (60000ms). Es ist wahrscheinlich, dass Sie irgendwo ein Verbindungsleck haben ... eine Verbindung wird ausgeliehen, aber nie geschlossen (zurückgegeben).

+0

Wie kann ich dies im Springboot aktivieren? tks –

1

Es sieht so aus, als ob Ihr Datenbankserver keine Verbindung mehr hat. Der Standardwert für die Eigenschaft maximumPoolSize in hikari ist 10. Das bedeutet, es wird versucht, 10 Verbindungen beim Serverstart zu erstellen, und es wird nicht gestartet, wenn 10 Verbindungen nicht möglich sind, oder wenn die Größe des Db-Serverpools weniger Verbindung im Pool aufweist, wenn Sie mit Hikari-Konfiguration erstellen. Wenn Sie in der Lage sind, den sprongboot-Server zu starten und sich dann diesem Problem zu stellen, versuchen Sie, leakDetectionThreshold zu aktivieren, und prüfen Sie, welche Verbindung mehr Zeit benötigt und nicht zum hikari-Pool zurückkehrt.

spring: 
    datasource:   
     hikari:      
      leak-detection-threshold: 1000