二级缓存(ehcache)在weblogic导致线程增长问题

探讨使用Hibernate结合EHCache作为二级缓存在WebLogic环境下出现的线程数量随部署次数增长的问题。分析EHCache缓存策略及后台线程管理机制,并寻求可能的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目中用到hibernate搭配ehcache做二级缓存。部署到weblogic,如果weblogic不挺下来。直接在weblogic console 中stop-->update-->start 做重新部署操作。用jconsole观察到Thread数量会随部署次数稳定增长。

 

研究了下ehcache。ehcache如果缓存到硬盘。对应每个table,ehcache都会起一对线程来维护这些table cache。一对如下线程:

    private final class SpoolAndExpiryThread extends Thread {

        public SpoolAndExpiryThread() {
            super("Store " + name + " Spool Thread");
            setDaemon(true);
            setPriority(Thread.NORM_PRIORITY);
            spoolAndExpiryThreadActive = true;
        }

        /**
         * RemoteDebugger thread method.
         */
        @Override
        public final void run() {
            spoolAndExpiryThreadMain();
        }
    }

 这些线程都设置为后台线程 setDeamon(true);

 

这些后台线程只有在把weblogic关了之后才会停下来,所以weblogic不重启,直接update war 然后start。ehcache会重新 new 很多新的线程。

 

这个问题不知道有什么解法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值