欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI
欢迎使用普元文档库
EOS Platform 7.5 mysql数据库,业务系统自早上频繁宕机,无法使用,后台报错,trace.log中的异常:
Last packet sent to the server was 1 ms ago.
at com.primeton.ext.common.connection.datasource.C3P0DataSourceProvider$ConnectionProxy.initConnection(C3P0DataSourceProvider.java:270)
at com.primeton.ext.common.connection.datasource.C3P0DataSourceProvider$ConnectionProxy.prepareStatement(C3P0DataSourceProvider.java:484)
at com.primeton.ext.infra.connection.ConnectionWrapper.prepareStatement(ConnectionWrapper.java:353)
at com.primeton.das.entity.impl.DASSessionImpl.countBySubQuery(DASSessionImpl.java:466)
... 65 more
Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.io.EOFException
STACKTRACE:
java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1905)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2351)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2862)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2988)
at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:4913)
at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:756)
......
......
at com.eos.foundation.database.Pagination.doQueryPageCond(Pagination.java:515)
at com.eos.foundation.database.DatabaseExt.queryEntitiesByCriteriaEntityWithPage(DatabaseExt.java:441)
** END NESTED EXCEPTION **
问题原因:分析了现场生成的Thread dump日志,问题原因是查询语句执行慢导致数据库支撑不了。用户发起的查询请求长时间不返回,导致应用服务器的执行线程池被耗光,无法接入新的请求。
解决办法:对数据库的业务表进行了优化,问题解决