`
江南孤鹰
  • 浏览: 56193 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

 
阅读更多

最近项目中用到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 很多新的线程。

 

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

 

分享到:
评论
1 楼 rain2005 2009-12-30  
那你把SpoolAndExpiryThread重写一下不就可以了吗?把setDeamon(true);去掉,不过我不清楚这样会对ehcache什么样的后果。

刚才又看了下setDeamon,这样还是不行的,还是需要改启动SpoolAndExpiryThread线程的地方,如果SpoolAndExpiryThread isAlive()就不启动新的了。

相关推荐

    Weblogic性能调优.ppt

    WebLogic Server是一款由BEA Systems(现已被Oracle收购)开发的企业级Java应用服务器,常用于构建、部署和管理企业级Java应用程序。本篇内容主要聚焦于WebLogic Server的性能调优,包括多个层面的优化策略。 1. **...

    weblogic性能管理

    WebLogic是Oracle公司的一款企业级Java应用服务器,它在企业级软件系统中广泛用于部署和管理Java应用程序。WebLogic的性能管理是确保其高效、稳定运行的关键环节。本讲解将深入探讨WebLogic性能管理的核心概念、重要...

    WebLogic_Server_Performance_and_Tuning

    - **案例二**:一家金融企业在进行大规模交易处理时遇到性能瓶颈,通过引入分布式缓存技术优化数据访问模式,并结合负载均衡技术实现了性能大幅提升。 #### 八、总结 - 通过对WebLogic Server进行全面深入地性能...

    java,weblogic和jdk性能调优文档

    - **数据缓存**:考虑使用二阶缓存(如EHCache)来减少数据库交互,提高响应速度。 总的来说,Java、WebLogic和JDK的性能调优是一个复杂而细致的过程,涉及到多个层面的调整。正确的调优策略不仅需要深入理解软件...

    weblogic性能优化

    WebLogic Server是一款由Oracle公司提供的企业级Java应用服务器,它为构建、部署和管理企业级Java应用程序提供了全面的平台。随着WebLogic在各种业务场景中的广泛应用,性能优化成为了管理员和开发人员关注的重点。...

    java应用服务器集群环境下代码编写要注意的问题参照.pdf

    2. **Cache策略**:对象级缓存如HashMap在单机环境下可能无法适应集群环境,需要采用分布式缓存如Ehcache、JBossCache、OSCache,或者集中式缓存如Memcached。选择哪种取决于项目需求。 3. **线程和定时器**:在...

    中级程序员必备面试题.txt

    在集群环境中,线程安全主要关注数据的一致性和同步问题。 #### 方法区垃圾回收 方法区(永久代)可以进行垃圾回收,主要回收无用的类和常量池。 #### Redis命令线程安全性 Redis命令一般线程安全,但多命令组合...

    java 技能优化集锦

    在旧版本JDK中,可以使用第三方库来实现类似功能,以避免过度使用线程导致的资源消耗。 3. **谨慎使用异常**: 异常处理应仅用于错误处理,而不是作为正常程序流程的一部分。抛出异常会创建新的对象并填充堆栈轨迹...

    模拟网上银行系统j2ee模拟网上银行系统

    3. 缓存技术,如 Ehcache 或 Redis,减少数据库访问,提高响应速度。 四、数据持久化 数据持久化是指将内存中的对象状态保存到持久存储介质,如关系型数据库。模拟网上银行系统通常使用Oracle、MySQL等关系数据库...

    Java性能优化技巧集锦

    - 非阻塞I/O在高并发环境下可显著提升性能,避免线程阻塞。JDK 1.4引入了`java.nio`包,提供了非阻塞I/O的支持。对于旧版本的JDK,可以通过第三方库实现这一功能。 3. **慎用异常** - 异常处理不应作为常规控制...

    JAVA上百实例源码以及开源项目源代码

    FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...

    dist:我们在fhnw的dist解决方案

    7. **Distributed Cache**: 如Hazelcast或 Ehcache,这些Java库可以实现分布式缓存,提高系统的响应速度和可扩展性。 8. **Message Brokers**: 如Apache ActiveMQ或RabbitMQ,它们在分布式系统中作为消息传递的中介...

Global site tag (gtag.js) - Google Analytics