Spring 启动 - Tomcat jdbc 数据库服务器重启后连接池未恢复
Spring Boot - Tomcat jdbc connection pool does not recover after database server is restarted
我有一个 Spring Boot (1.5.17) Web 应用程序,Tomcat JDBC 连接池 (8.5.34) 配置如下:
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 服务器),我会得到 com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed
异常并且连接池不会恢复。
那我做错了什么?
我发现错误了。我在写入配置密钥时出错 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
我有一个 Spring Boot (1.5.17) Web 应用程序,Tomcat JDBC 连接池 (8.5.34) 配置如下:
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 服务器),我会得到 com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed
异常并且连接池不会恢复。
那我做错了什么?
我发现错误了。我在写入配置密钥时出错 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