记一次内存溢出处理

有一个我们公司整合第三方的系统(主要是数据同步用的),每当系统操作了一段时间后就会报内存溢出!!!

oom

检查了一下我们自己的代码,一直没发现问题,(一开始还以为是因为查询记录过大或者包含大字段的原因,一下子保存到内存中过大导致的)于是乎就想起了一些JVM监控工具,这里安利一波yourkit!!!

通过监控资源和调用栈,终于发现了是因为prepareStatement没有正确关闭造成的!!!

yourkit界面


yourkit界面


异常日志

最终发现代码里的一个隐藏坑!


代码大致是这样的

for循环里的ps并不是每一个都被关闭了!只有最后一个引用的对象才被关闭!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容