一次 DatabaseException 事故分析:从异常日志到最终解决方案,MySQL配置:检查
分享于 点击 29770 次 点评:169
一次 DatabaseException 事故分析:从异常日志到最终解决方案,MySQL配置:检查
报错信息:
未包装异常,异常信息:
com.xx.xx.database.core.DatabaseException:数据库异常:请求'null'处理异常:请求关闭
调用信息:com.xx.xx.database.core.acceptor.DatabaseAcceptor#fail:55@DatabaseAcceptor.java
排查思路
ORM 连接:检查自研 ORM 的事务管理、超时时间和连接池配置,确保事务未被意外终止或超时,避免连接池资源耗尽。
MySQL 配置:检查 MySQL 的内存分配、最大连接数、事务超时时间等配置是否合理,避免数据库性能瓶颈。
应用层线程管理:检查 Vert.x 的线程池配置、任务队列大小及超时时间,确保线程池不会被耗尽,导致请求处理失败。
JVM 资源:检查 JVM 的最小/最大堆内存设置,确保内存资源足够,避免由于内存限制导致线程创建不足。
用户点评