Nejjednodušší způsob je zadat autoReconnect
vlastnost v JDBC url, i když to není doporučený přístup.
spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true
To může způsobit problémy, když máte aktivní připojení a během transakce se něco stane a dojde k opětovnému připojení. Nezpůsobí problémy, když je připojení ověřeno na začátku transakce a na začátku je získáno nové připojení.
Pravděpodobně je však lepší povolit ověřování vašich připojení během životnosti vaší aplikace. K tomu můžete zadat několik vlastností .
Nejprve začněte zadáním maximálního počtu připojení, které povolíte pro fond. (Chcete-li si přečíst o určení maximální velikosti fondu, přečtěte si toto ).
spring.datasource.max-active=10
Můžete také chtít zadat počet počátečních připojení
spring.datasource.initial-size=5
Dále chcete určit minimální a maximální počet nečinných připojení.
spring.datasource.max-idle=5
spring.datasource.min-idle=1
Chcete-li ověřit připojení, musíte zadat ověřovací dotaz a kdy ověřit. Jak chcete pravidelně ověřovat, místo toho, když je připojení načteno z fondu (to proto, aby se zabránilo přerušeným připojením ve vašem fondu).
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1
POZNÁMKA: Použití validation-query
se ve skutečnosti nedoporučuje, protože JDBC4 má lepší/jiný způsob ověřování připojení. HikariCP automaticky zavolá metodu ověření JDBC, je-li k dispozici.
Nyní, když také ověřujete, když je připojení nečinné, musíte určit, jak často chcete spouštět tento dotaz pro připojení a kdy je připojení považováno za nečinné.
spring.datasource.time-between-eviction-runs-millis=5000 (this is the default)
spring.datasource.min-evictable-idle-time-millis=60000 (this is also default)
To vše by mělo spustit ověření vašich (nečinných) připojení, a když dojde k výjimce nebo uplyne doba nečinnosti, vaše připojení budou odstraněna z fondu.
Za předpokladu, že jako fond připojení používáte Tomcat JDBC toto je pěkné čtení toho, co a jak nakonfigurovat.
AKTUALIZACE: Spring Boot 2.x přepnul výchozí fond připojení na HikariCP namísto Tomcat JDBC.