Най-лесният начин е да посочите autoReconnect
свойство в URL адреса на JDBC, въпреки че това не е препоръчителният подход.
spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true
Това може да създаде проблеми, когато имате активна връзка и по време на транзакция се случва нещо и ще се случи повторно свързване. Няма да има проблеми, когато връзката се потвърди в началото на транзакцията и се получи нова връзка в началото.
Въпреки това вероятно е по-добре да активирате валидирането на вашите връзки по време на живота на вашето приложение. За това можете да посочите няколко свойства .
Първо започнете, като посочите максималния брой връзки, които разрешавате за пула. (За четене относно определянето на максималния размер на басейна прочетете това ).
spring.datasource.max-active=10
Може също да искате да посочите броя на първоначалните връзки
spring.datasource.initial-size=5
След това искате да посочите минималния и максималния брой неактивни връзки.
spring.datasource.max-idle=5
spring.datasource.min-idle=1
За да потвърдите връзката, трябва да посочите заявка за валидиране и кога да потвърдите. Както искате да проверявате периодично, вместо кога се извлича връзка от пула (това, за да предотвратите прекъснати връзки във вашия пул).
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1
ЗАБЕЛЕЖКА: Използването на validation-query
всъщност се обезкуражава, тъй като JDBC4 има по-добър/различен начин за извършване на проверка на връзката. HikariCP автоматично ще извика метода за проверка на JDBC, когато е наличен.
Сега, когато проверявате и докато връзката е неактивна, трябва да посочите колко често искате да изпълнявате тази заявка за връзките и кога връзката се счита за неактивна.
spring.datasource.time-between-eviction-runs-millis=5000 (this is the default)
spring.datasource.min-evictable-idle-time-millis=60000 (this is also default)
Всичко това трябва да задейства валидиране на вашите (неактивни) връзки и когато възникне изключение или периодът на неактивност изтече, връзките ви ще бъдат премахнати от пула.
Ако приемем, че използвате Tomcat JDBC като пул за връзки това е хубаво четиво какво и как да конфигурирате.
АКТУАЛИЗИРАНЕ: Spring Boot 2.x превключи пула за връзки по подразбиране към HikariCP вместо Tomcat JDBC.