阿里druid 出现 discard long time none received connection.
druid采用和DBCP一样的配置,所以我就想起了DBCP数据库连接池discard的问题,原理是让程序主动去回收连接,而不是数据库去断开连接;
查看mysql超时配置
mysql> show variables like '%tiimeout%;
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | YES |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 100 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 100 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 60 |
| wait_timeout | 100 |
+-----------------------------+----------+
spring:datasource:druid:# 初始化时建立物理连接的个数initial-size: 5# 最大连接池数量max-active: 20# 最小连接池数量min-idle: 5# 获取连接时最大等待时间max-wait: 60000# 是否缓存preparedStatement,也就是PSCache。pool-prepared-statements: false# 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。max-pool-prepared-statement-per-connection-size: -1# 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。validation-query: SELECT 'x'# 单位:秒,检测连接是否有效的超时时间。validation-query-timeout: 1# 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。test-on-borrow: false# 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。test-on-return: false# 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。test-while-idle: true# 有两个含义:1) Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明time-between-eviction-runs-millis: 100000# 连接保持空闲而不被驱逐的最小时间min-evictable-idle-time-millis: 60000
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
