tomcat 运行一段时间报 ERROR druid.sql.Statement - {conn-10009, stmt-20119} execute error. SELECT 1 FROM DUAL java.sql.SQLRecoverableException: IO Error: Connection timed out

gwo2fgha  于 2022-12-31  发布在  Druid
关注(0)|答案(2)|浏览(1984)

错误信息
ERROR druid.sql.Statement - {conn-10009, stmt-20119} execute error. SELECT 1 FROM DUAL
java.sql.SQLRecoverableException: IO Error: Connection timed out
配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=oracle.jdbc.OracleDriver

初始化大小,最大,最小

spring.datasource.initialSize=3
spring.datasource.maxActive=20
spring.datasource.minIdle=3

配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

spring.datasource.timeBetweenEvictionRunsMillis=60000

获取连接等待超时的时间

spring.datasource.maxWait=10000

配置一个连接在池中最小生存的时间,单位是毫秒

spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=true
spring.datasource.testOnReturn=false

配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.removeAbandoned=true
spring.datasource.removeAbandonedTimeout=1800000

打开PSCache,并且指定每个连接上PSCache的大小

spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.logAbandoned=true

配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙

spring.datasource.filters=stat,wall,log4j

s8vozzvw

s8vozzvw1#

用的mybatis
异常里看见是有一个方法导致的, 但是就是一个查询执行时间很快

py49o6xq

py49o6xq2#

错误信息
ERROR druid.sql.Statement - {conn-10009, stmt-20119} execute error. SELECT 1 FROM DUAL
java.sql.SQLRecoverableException: IO Error: Connection timed out
配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=oracle.jdbc.OracleDriver

初始化大小,最大,最小

spring.datasource.initialSize=3
spring.datasource.maxActive=20
spring.datasource.minIdle=3

配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

spring.datasource.timeBetweenEvictionRunsMillis=60000

获取连接等待超时的时间

spring.datasource.maxWait=10000

配置一个连接在池中最小生存的时间,单位是毫秒

spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=true
spring.datasource.testOnReturn=false

配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.removeAbandoned=true
spring.datasource.removeAbandonedTimeout=1800000

打开PSCache,并且指定每个连接上PSCache的大小

spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.logAbandoned=true

配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙

spring.datasource.filters=stat,wall,log4j

和我们项目类似,使用1.0.25版本,出现类似问题,后面升级1.1.6没有解决;再后面优化时候看到这个配置
#使用非公平锁
useUnfairLock: true

貌似解决了这个问题,可能是由于公平锁导致一些资源占用情况 这块可能需要 @wenshao 帮忙解释分析下

相关问题