我的应用程序使用下面的框架和应用服务器:
但是,在运行了几个小时的连接超时之后,应用程序可以正常工作。见下列例外情况:
2017-09-01T11:40:40.57+0900 [APP/PROC/WEB/0] OUT 2017-09-01 02:40:40,563 [http-nio-8080-exec-2] [5baba2cb-5bfd-4846-b8e0-8782aa729639] [] WARN o.h.e.jdbc.spi.SqlExceptionHelper [SqlExceptionHelper.java:127] - SQL Error: -4499, SQLState: 08001
2017-09-01T11:40:40.58+0900 [APP/PROC/WEB/0] OUT or socket output stream. Error location: Reply.fill() - socketInputStream.read (-1). Message: Connection timed out (Write failed). ERRORCODE=-4499, SQLSTATE=08001 我知道Spring需要在application.properties中设置配置属性。
spring.datasource.testOnBorrow=true
spring.datasource.testWhileIdle=true
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.numTestsPerEvictionRun=3
spring.datasource.minEvictableIdleTimeMillis=600000
spring.datasource.validationQuery=SELECT 1但是,我发现在Spring 1.3+中,我们必须使用它们各自的前缀(spring.datasource.tomcat.、spring.datasource.hikari.和Spring.Dataource.dbcp 2.*)来使用特定于实现的设置,而且(显然)不支持Websphere Application自由配置文件。
我的问题是,应该如何配置以保持连接活动(或更新它们)?
提前谢谢你!
发布于 2017-10-23 20:40:01
你在用什么数据源?在我们的例子中,我们使用tomcat,这是默认的选项。所以我们有
# DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.test-while-idle=true
spring.datasource.tomcat.time-between-eviction-runs-millis=300000
spring.datasource.tomcat.validation-query=SELECT 1https://stackoverflow.com/questions/46030080
复制相似问题