Spring Boot JPA连接在一段时间不活动后关闭

时间:2017-03-13 21:48:45

标签: spring azure tomcat spring-boot spring-data-jpa

我有一个部署到Azure的spring boot应用程序。此应用程序使用JPA连接到SQL Server数据库。一切似乎都很好,直到大约30分钟不活动。我的猜测是数据库正在关闭连接,并且spring boot(tomcat)容器没有正确处理这种情况。

我通过以下方式注入数据属性:

@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource getDataSource() {
    return DataSourceBuilder.create().build();
}

我的application.properties是:

spring.datasource.url=jdbc:sqlserver://xxxxxx:1433;database=xxxxxx
spring.datasource.username=xxxxxxx
spring.datasource.password=xxxxxxxx
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.validation-query=SELECT 1
spring.datasource.tomcat.validation-interval=0
spring.datasource.tomcat.removeAbandoned=true
spring.datasource.tomcat.removeAbandonedTimeout=120
spring.datasource.tomcat.timeBetweenEvictionRunsMillis=34000
spring.datasource.tomcat.minEvictableIdleTimeMillis=55000
spring.datasource.tomcat.initialSize=4
spring.datasource.tomcat.maxActive=16

然而,经过一段时间的不活动,我得到了SQLExceptions:

com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed.

我试图确定原因。我猜测连接验证没有正常工作,但据我了解,连接应该在允许应用程序使用之前由tomcat验证。任何帮助将不胜感激。

0 个答案:

没有答案