discardconnection
现象
2021/05/31-19:36:38.927[][ShardingSphere-0] ERROR DruidDataSource- discard connection
MySQLNonTransientConnectionException: No operations allowed after statement clod.
vag
wInstance0(Native Method)
wInstance(NativeConstructorAccessorImpl.java:62)
wInstance(DelegatingConstructorAccessorImpl.java:45)
wInstance(Constructor.java:423)
at Util.handleNewInstance(Util.java:411)
Instance(Util.java:386)
ateSQLException(SQLError.java:1015)
ateSQLException(SQLError.java:989)
ateSQLException(SQLError.java:975)
ateSQLException(SQLError.java:920)
at StatementImpl.checkClod(StatementImpl.java:461)
ute$original$GSeftvfb(PreparedStatement.java:1274)
ute$original$GSeftvfb$accessor$6BywaSxn(PreparedStatement.java)
at PreparedStatement$auxiliary$eBJ6JSqZ.call(Unknown Source)
restartat InstanceEnhanceInvoker.intercept(InstanceEnhanceInvoker.java:62)
ute(PreparedStatement.java)
人力资源培训机构ute(DruidPooledPreparedStatement.java:497)
at uteSQL(SQLExecuteCallbackFactory.java:62)
at uteSQL(SQLExecuteCallbackFactory.java:58)
汽车维修设备ute0(SQLExecuteCallback.java:82)
ute(SQLExecuteCallback.java:58)
at ExecutorEngine.lambda$asyncExecute$0(ExecutorEngine.java:110)
at TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:1 11)
tooth的复数形式at InterruptibleTask.run(InterruptibleTask.java:58)
at TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75)
at ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
工作经历英文at Thread.run(Thread.java:748)
原因
之所以会出现这个异常,是因为MySQL5.0以后针对超长时间DB连接做了⼀个处理,那就是如果⼀个DB连接在⽆任何操作情况下过了8个⼩时后(Mysql 服务器默认的“wait_timeout”是8⼩时),Mysql会⾃动把这个连接关闭。这就是问题的所在,在连接池中的connections 如果空闲超过8⼩时,mysql将其断开,⽽连接池⾃⼰并不知道该connection已经失效,如果这时有 Client请求connection,连接池将该失效的Connection提供给Client,将会造成上⾯的异常。
郑东河所以配置datasource时需要配置相应的连接池参数,定是去检查连接的有效性,定时清理⽆效的连接。
解决⽅案
尝试1
设置数据源中配置
druid.time-between-eviction-runs-millis=60000
druid.min-evictable-idle-time-millis=3600000
druid.validation-query=SELECT 1 FROM DUAL
wnba是什么尝试2服装外贸
高中历史教学案例
在jvm启动参数中增加如下配置:
-sql.uPingMethod=fal
尝试3
数据库url配置中增加这个配置:&autoReconnect=true
问题依然存在
基本上4分钟报⼀次,不过不影响正常业务逻辑
先暂时搁置