运行hibernate时程序不关闭的问题

问题:在MyEclipse运行hibernate工程(j2ee测试工程)时,整个电脑内存溢出,导致黑屏,重启后才恢复
排查:
<1> 重启后每次运行该工程,任务管理器中内存每次都会增加140M左右,肯定是内存泄漏;
<2> 每次运行该工程,任务管理器中都会增加一个java虚拟机,占用内存140M左右,并且不释放;
<3> 按理说每次运行完成之后,等于程序执行结束,虚拟机应该销毁并释放内存。就算程序代码中存在内存泄漏的风险,也不应该存在这种问题;
<4> 每次运行后,没有异常,数据库的数据也修改了,观察MyEclipse右下方,发现运行标志还是红色方块,表示程序并没有结束;
<5> 逐行排查代码,发现每次调用下面的openSession()函数就会有这个问题,问题极有可能出在静态代码区:
private static SessionFactory sessionFactory = null;
static {
sessionFactory = new Configuration().configure().buildSessionFactory();
}
public static Session openSession() {
return sessionFactory.openSession();
}
<5> 对比另外一个工程也是这样调用的,每次运行后虚拟机都会自动销毁,不存在该问题;
<6> 把正常工程的代码拷贝到问题工程下执行,问题依旧存在,所以肯定不是代码的问题;
<7> 突然想到正常工程是自己下载的hibernate开发包(5.4.4版本),而问题工程用的是MyEclipse自带的hibernate开发包(5.1版本),
所以很可能是jar包的问题;
<8> 删除问题工程的全部hibernate开发包(5.1),换成下载的开发包(5.4.4),再次运行,问题解决。
SO,确实是jar包的问题。害人折腾了好久。。。暂时没有测试是哪个jar,猜测应该是5.1版本中hibernate core的jar有问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值