- 问题现象
从druid 1.1.9版本升级到druid 1.1.16版本后,多线程事务报Can't call commit when autocommit=true错误,事务错乱。
定位发现连接池中存在对象引用有重复:
- druid配置
{
"initialSize": 5,
"minIdle": 5,
"maxActive": 20,
"maxWait": 5000,
"connectionProperties": "characterEncoding=utf8;connectTimeout=10000;socketTimeout=15000;autoReconnect=true",
"minEvictableIdleTimeMillis": 60000,
"timeBetweenEvictionRunsMillis": 60000,
"testOnBorrow": false,
"testOnReturn": false,
"testWhileIdle": true,
"keepAlive": true
}
- 重现场景
启动压测一波,等连接大于minIdel的值, 暂停压测。 等待一段时间,连接数会降下来降到minIdle以下,在并发请求,问题就重现了。
- 请问此问题原因是?
怀疑minEvictableIdleTimeMillis配置的时间比keepAliveBetweenTimeMillis(默认120s)导致的。
暂无答案!
目前还没有任何答案,快来回答吧!