【发布时间】:2012-10-26 23:06:45
【问题描述】:
我的应用出现错误:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.GeneratedConstructorAccessor281.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
当我的应用看到该错误时,它会自动重试该操作。但是当我做了一个 tcpdump 时,我没有看到当时创建了任何新的 tcp 连接。看起来使用了相同的 tcp 连接。那么为什么我会得到例外?我的应用程序使用 c3p0 连接池,我在签入前将 c3p0 设置为测试连接。mysql 驱动程序或 c3p0 是否有任何设置来解决这个问题?
【问题讨论】:
-
关闭一个池连接只会将它返回到池中。不需要新的服务器连接。