目录
应用无法访问或迟缓
背景:应用A、B、C属于不同的模块,用的同一数据库,相同的网络环境。模块C属于新部署应用功能。
现象:项目架构如图所示,某天用户反馈某一个模块查询缓慢,有的用户甚至查不出来。
排查:
- 该模块属于应用C,之前还访问正常,突然访问异常,且各个功能均如此。代码原因比较复杂,首先怀疑网络原因和配置原因;
- 访问门户对应的其他应用对应的模块,访问正常,排除网络原因;
- 配置原因首先排查数据库连接数,发现数据库最大连接数为5,可能是部署时没有修改正式环境配置,调整数据库最大连接数,重启应用后,访问正常。
数据库连接数居高不下
背景:该项目使用编程式事务。
现象:最近运维同事一直追在屁股后边,数据库(oracle)连接数快达到上限了,一般在300~400左右,现在都跑到2千5,6了。
排查:
这种情况首先猜想数据库中是否有未关闭数据库连接造成的,经过排查,确实也是有部分线上代码未关闭连接。
手段:
- 查找整个项目中开关事务代码数量是否一致
- 查找特定包下开关事务代码数量是否一致
- 查找所有代码中开关事务代码数量是否一致
以上在IDEA中,可以使用Ctrl+Shift+F,查找相关代码,然后Open in Find Window,可以显示总数量和每个类中查找的代码数量。