Hibernate+mysql+tomcat 关闭tomcat的后java进程还在(因为hibernate还链接这mysql)
最近公司开发需求使用到Hibernate+mysql+tomcat 第一次使用Hibernate,难免掉坑里。当tomcat关闭当时候发现java进程还存在,重新开启tomcat会又多处一个java进程,而且每个java进程都占用了大量都内存,这样重启tomcat几次,直接OOM。
如果确定程序中没有其他问题,那么一定是hibernate还只有mysql的链接
解决方案:
当程序退出当时候调用如下代码关闭SessionFactory即可解决上述问题
public void closeSessionFactory(){
if (ourSessionFactory != null && !ourSessionFactory.isClosed()){
ourSessionFactory.close();
ourSessionFactory = null;
}
}