Mycat报了这个错误,查了一下,因为Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这么看的话,Mycat的后端连接检查有问题。版本是1.6
2019-01-22 15:38:32.536 ERROR io.mycat.backend.jdbc.JDBCConnection - sql execute error, com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at io.mycat.backend.jdbc.JDBCConnection.rollback(JDBCConnection.java:769)
at io.mycat.server.NonBlockingSession.releaseConnection(NonBlockingSession.java:389)
at io.mycat.server.NonBlockingSession.releaseConnections(NonBlockingSession.java:402)
at io.mycat.server.NonBlockingSession.clearResources(NonBlockingSession.java:547)
at io.mycat.backend.mysql.nio.handler.MultiNodeHandler.clearIfSessionClosed(MultiNodeHandler.java:149)
at io.mycat.backend.mysql.nio.handler.MultiNodeQueryHandler.clearIfSessionClosed(MultiNodeQueryHandler.java:56)
at io.mycat.backend.mysql.nio.handler.MultiNodeQueryHandler.okResponse(MultiNodeQueryHandler.java:252)
at io.mycat.backend.jdbc.JDBCConnection.executeddl(JDBCConnection.java:358)
at io.mycat.backend.jdbc.JDBCConnection.executeSQL(JDBCConnection.java:304)
at io.mycat.backend.jdbc.JDBCConnection.access$000(JDBCConnection.java:31)
at io.mycat.backend.jdbc.JDBCConnection$1.run(JDBCConnection.java:742)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
at com.mysql.jdbc.Util.getInstance(Util.java:372)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:958)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872)
at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1236)
at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1231)
at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4574)
at io.mycat.backend.jdbc.JDBCConnection.rollback(JDBCConnection.java:765)
... 13 common frames omitted
Mycat报了这个错误,查了一下,因为Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这么看的话,Mycat的后端连接检查有问题。版本是1.6