这个报错一般是客户端连接已经被中断了,但客户端不知道,还想重用该连接,在重用的时候就会遇到 no operations allowed after connection closed。
通过show processlist命令可以看到部分应用连接空闲时间很长(command字段为sleep,time为空闲时间)。
一、 可能导致该报错原因
-
数据库中 interactive_timeout 参数设置过短 [10-86400]
-
数据库中 wait_timeout 参数设置过短 [1-31536000]
-
Connection pools 中 connection 的 lifetime 设置过长
-
防火墙有空闲超时设置
二、 可用解决方法
-
增大数据库中 interactive_timeout 参数设置
-
增大数据库中 wait_timeout 参数设置
-
缩短 Connection pools 中 connection 的 lifetime 设置
-
应用定期发送例如 select 1语句到数据库,保活连接
-
加长防火墙空闲超时设置
No
operation
s
allowed
after
connection
clo
sed
.
Connection
was implicitly
clo
sed
due to underlying exception/error: ** BEGIN NESTED EXCEPTION **
com.
mysql
.jdbc.C...
关于com.
mysql
.jdbc.exceptions.jdbc4.
MySQL
NonTransient
Connection
Exception: No
operation
s
allowed
after
connection
clo
sed
.
意思很明显:连接已经关闭,无法再访问
数据库
具体原因我还说不清楚(有人说是因为静态方法获取连接引起的),DBUtil的代码是这样的:
public
最近线上的项目出现了一个很奇怪的问题,从开发到上线一直没有问题,但是今天早上10点左右突然被通知说系统访问异常,经过排查日志错误信息发现了此错误:No
operation
s
allowed
after
connection
clo
sed
。
通过筛查发现是
mysql
服务端断开了连接,导致服务连接
mysql
异常。
MySQL
5.0以后针对超长时间
数据库
连接做了一个处理,即一个
数据库
连接在无任何操作情况下过了 8 个小时后(
MySQL
服务器默认的超时时间是 8 小时),
MySQL
会自动把这个连
本人用struts+jDBC+tomcat+
mysql
做了个小型网站,刚开始挂上去时没有问题,等过三天左右就会报No
operation
s
allowed
after
connection
clo
sed
.错误
报错
如下:javax.servlet.ServletException: java.sql.SQLException: No
operation
s
allowed
after conne...
最近期末考试了,还有一门,忙里偷闲的时候又把后端重新弄了一遍,以前和前端进行交互的时候只是测试一次没有发现什么问题,可是这次我打开之后发现了一点新问题,就是连续多次从安卓端请求数据的时候,后台就会
报错
,
报错
的错误为:
Struts has detected an unhandled exception:
No
operation
s
allowed
after
connection
clo
sed
...
今天项目
报错
: No
operation
s
allowed
after
connection
clo
sed
错误原因:
MySQL
服务器默认的“wait_timeout”是28800秒即8小时,意味着如果一个连接的空闲时间超过8个小时,
MySQL
将自动断开该连接,而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的
报错
1.修改项目配置文件 ...
No
operation
s
allowed
after
connection
clo
sed
问题小记
Spring Boot 2.x
数据库
连接池默认Hikari,现有配置为默认配置
日志是warn级别的:
Failed to validate
connection
com.
mysql
.cj.jdbc.
Connection
Impl@70ec1a35
(No
operation
s
allowed
after
connection
clo
sed
.). Possibly consider us
1、错误描述2017-04-07 15:02:12,499 [pool-1-thread-1] ERROR [com.alibaba.druid.pool.DruidDataSource] - discard
connection
com.
mysql
.jdbc.exceptions.jdbc4.
MySQL
NonTransient
Connection
Exception: No
operation
页面出现500,查看控制台错误出现No
operation
s
allowed
after
connection
clo
sed
。
出现No
operation
s
allowed
after
connection
clo
sed
。错误
,说明
mysql
的链接已经关闭了。访问一个关闭了的链接当然会出现异常了。
之所以会出现这个异常,是因为
MySQL
5.0以后针对超长时间DB连接做了一个处理,那就是如果一个DB连接在无任何操作情况下过了8个小时后(
Mysql
服务器默认的“wait_timeout”是8小
部署后的项目,第二天发现其中的一个
mysql
连接数据源没有显示,打开日志后发现
报错
了(No
operation
s
allowed
after
connection
clo
sed
) ,经过一番摆渡,发现是因为
MySQL
5及更新的版本会对超过8小时并且无任何操作的
数据库
连接进行关闭,但是你得
数据库
连接池并不知道此连接已失效,当你再次访问的时候,连接池就奉上此失效连接,so Exception.
关于解...
**No
operation
s
allowed
after
connection
clo
sed
错误原因及解决方法**
**原因:**
我出现这个异常的原因是因为我在写代码时因为麻烦把这一个连接
数据库
的方法写成了全局变量,因为每一个都要写一遍,觉得很麻烦,所以我就想把他定义为全局变量,这样就可以省下了很多功夫。
之前在网上查了许多方法,自己尝试了许多,都没有解决这个问题。
在看了老师的代码之后发现不一样,便去尝试了一下,就行了
解决方法:
如果你连接
数据库
的代码时全局变量可以把你的代..