java 热加载 内存溢出_解决一系列tomcat热部署问题 create a memory leak.

开发环境中,一直使用热部署;

当重新编译的时候,有些资源不能够释放,从而占用了内存;多热部署几次就内存溢出了。

今天解决了这几个问题;

在实际项目中,主要是这几类资源无法释放:

1,连接池

2,自己写的任务队列线程,

3,mysql的线程;

爆出的warning大概是:

[MySQL S tatement Cancellation Timer] but has failed to stop it. This is very likely to c reate a memory leak.

类似的问题应该是都是资源无法释放;

那我们就从这里入手:

1,释放连接池不能释放的资源:

1)如果你用的是common-dbcp 可以参考这个:

2)如果是连接池,可以开启一个context的监听器:

public class ContextDestroyedListener implements ServletContextListener {

@Override

public void contextDestroyed(ServletContextEvent arg0) {

System.out.println("you must be reload tomcat....please waiting ...");

CacheManager.shutdown();

Enumeration drivers = DriverManager.g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值