首页 > 解决方案 > Spring Boot - 数据库服务器重启后Tomcat jdbc连接池不恢复

问题描述

我有一个带有 Tomcat JDBC 连接池(8.5.34)的 Spring Boot(1.5.17)Web 应用程序,配置如下:

primary.datasource.tomcat.testOnBorrow=true 
primary.datasource.validationQuery=SELECT 1
primary.datasource.validationInterval=35000
primary.datasource.initial-size=10
primary.datasource.max-active=50
primary.datasource.max-idle=20
primary.datasource.min-idle=10

现在,如果我重新启动数据库服务器(SQL Server),我会得到com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed异常并且连接池不会恢复。

那么我做错了什么?

标签: sql-serverspring-boottomcat-jdbc

解决方案


我发现了错误。我在编写配置密钥时犯了一个错误primary.datasource.tomcat.testOnBorrow。应该是primary.datasource.testOnBorrow。现在它工作正常。数据库服务器重新启动后,连接池几乎立即恢复。

如果他们遇到类似问题,这是我为任何人提供的最终配置。

primary.datasource.testOnBorrow=true
primary.datasource.validationQuery=SELECT 1
primary.datasource.validationInterval=55000
primary.datasource.initial-size=5
primary.datasource.min-idle=5
primary.datasource.max-idle=10
primary.datasource.max-active=20
primary.datasource.removeAbandoned=true

推荐阅读