java.sql.SQLException: 连接关闭后不允许进行任何操作。数据库:mysql
java.sql.SQLException: No operations allowed after connection closed . DB: mysql
Exception :
java.sql.SQLException: No operations allowed after connection closed.
当我尝试 运行 我的应用程序时遇到了这个奇怪的异常。我正在为连接对象使用局部变量,并且在执行某些语句后引发此异常。我正在使用 c3p0 连接池和 MySQL 数据库。
如果不看你的代码很难诊断这个问题,但我曾经遇到过类似的问题,因为 mysql 会在一段时间后关闭连接;因此请确保您的数据源的配置具有验证查询,并且 testOnBorrow 和 testWhileIdle 都为真。
这是一个例子:
<Resource auth="Container" type="javax.sql.DataSource" name="jdbc/mydb"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://myserver/mydb"
maxActive="10"
maxIdle="5"
validationQuery="SELECT 1"
testOnBorrow="true"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="10000"
minEvictableIdleTimeMillis="60000"
username="???" password="???"/>
Exception : java.sql.SQLException: No operations allowed after connection closed.
当我尝试 运行 我的应用程序时遇到了这个奇怪的异常。我正在为连接对象使用局部变量,并且在执行某些语句后引发此异常。我正在使用 c3p0 连接池和 MySQL 数据库。
如果不看你的代码很难诊断这个问题,但我曾经遇到过类似的问题,因为 mysql 会在一段时间后关闭连接;因此请确保您的数据源的配置具有验证查询,并且 testOnBorrow 和 testWhileIdle 都为真。
这是一个例子:
<Resource auth="Container" type="javax.sql.DataSource" name="jdbc/mydb"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://myserver/mydb"
maxActive="10"
maxIdle="5"
validationQuery="SELECT 1"
testOnBorrow="true"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="10000"
minEvictableIdleTimeMillis="60000"
username="???" password="???"/>