Comment puis-je obtenir Printemps de Démarrage pour se reconnecter automatiquement à PostgreSQL?

Je suis en cours d'exécution Printemps de Démarrage connexion à une base de données PostgreSQL. J'ai vérifié que les données sont écrites dans la base de données si Spring Boot est commencé après la base de données.

spring.datasource.url = jdbc:postgresql://localhost/dbname
spring.datasource.username = user
spring.datasource.password = secret
spring.datasource.driver-class-name = org.postgresql.Driver
spring.datasource.testOnBorrow=true
spring.datasource.validationQuery=SELECT 1

Quand il y a des changements dans la base de données en développement, j'ai couru dans les exceptions:
PreparedStatementCallback; SQL []; This connection has been closed.; nested exception is org.postgresql.util.PSQLException: This connection has been closed.

Noter que la base de données est accessible à nouveau lorsque les exceptions; je pense que le problème est que la connexion est obsolète, car la base de données de point de terminaison il connecté à l'origine n'est plus disponible en raison de la redémarrer. Le redémarrage de Printemps de Démarrage résout le problème.

Comment puis-je configurer Spring Boot à se reconnecter à PostgreSQL de sorte que je n'ai pas besoin de le redémarrer?

J'ai tenté de suivre les réponses dans Printemps de Démarrage JPA - la configuration de reconnexion automatique et Comment reconnecter base de données si la fermeture de la connexion au printemps jpa?. Je ne suis pas sûr de savoir si le PostgreSQL comportement est différent de MySQL. Ma lecture de la Printemps de Démarrage de la documentation n'a pas aidé, je ne connais pas les composants décrit assez bien pour comprendre quels sont les documents que je devrais être en train de regarder.

  • Qui le pool de connexion utilisez-vous? Si vous ne l'utilisez pas, vous pouvez essayer de passer à Hikari. J'ai vu ce type de problèmes dans le passé avec tomcat-jdbc qui est la valeur par défaut du pool de connexion pour le moment.
  • Vous avez test sur les emprunter, mais vous avez sans doute aussi souhaitez définir le vérifier lors de l'inactivité et du délai d'inactivité. De cette façon, les connexions sont vérifiés régulièrement et retiré de la piscine si l'invalide.
  • Je pense que je suis en utilisant tomcat-jdbc parce que mon pom comprend printemps-amorçage-starter-jdbc.
InformationsquelleAutor mattm | 2016-09-18