druid 升级1.1.16版本报Can't call commit when autocommit=true错误

xa9qqrwz  于 2021-11-27  发布在  Java
关注(0)|答案(0)|浏览(264)
  • 问题现象

从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)导致的。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题