`
cherami
  • 浏览: 212338 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用JBossCache作为Hibernate的二级缓存

    博客分类:
  • Java
阅读更多

这个是最近的工作成果,使用JBossCache作为Hibernate的二级缓存,因为JBossCache支持Transactional的缓存策略(Strategy),而且支持Cluster,Cluster还支持Invalidation的方式,比Replication方式更好,对两种方式同时支持同步和异步,还有其他很多特性,比OSCache好得多。
由于我们是把Hibernate作为服务配置的,所以CacheProviderClass使用的是org.jboss.hibernate.cache.DeployedTreeCacheProvider,需要另外一个MBean进行TreeCache的配置:
<mbean code="org.jboss.cache.TreeCache" name="jboss.cache:service=HibernateTreeCache">
<depends>jboss:service=Naming</depends>
<depends>jboss:service=TransactionManager</depends>
<attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>
<attribute name="EvictionPolicyConfig">
            <config>
                <attribute name="wakeUpIntervalSeconds">10</attribute>
                <region name="/_default_" policyClass="org.jboss.cache.eviction.LRUPolicy">
                    <attribute name="maxNodes">5000</attribute>
                    <attribute name="timeToIdleSeconds">300</attribute>
                </region>
            </config>
</attribute>
<attribute name="NodeLockingScheme">OPTIMISTIC</attribute>
<attribute name="IsolationLevel">REPEATABLE_READ</attribute>
<attribute name="CacheMode">INVALIDATION_ASYNC</attribute>
<attribute name="ClusterName">HibernateInvalidatedReplicatedCache</attribute>
<attribute name="LockAcquisitionTimeout">15000</attribute>
    <attribute name="ClusterConfig">
      <config>
        <UDP mcast_addr="101.101.101.101"
             mcast_port="55588"
             ucast_recv_buf_size="20000000"
             ucast_send_buf_size="640000"
             mcast_recv_buf_size="25000000"
             mcast_send_buf_size="640000"
             loopback="false"
             max_bundle_size="64000"
             max_bundle_timeout="30"
             use_incoming_packet_handler="true"
             use_outgoing_packet_handler="true"
             ip_ttl="${jgroups.mcast.ip_ttl:2}"
             down_thread="false" up_thread="false"
             enable_bundling="true"/>
        <PING timeout="2000"
              down_thread="false" up_thread="false" num_initial_members="3"/>
        <MERGE2 max_interval="100000"
                down_thread="false" up_thread="false" min_interval="20000"/>
        <FD_SOCK down_thread="false" up_thread="false"/>
        <FD shun="true" up_thread="false" down_thread="false"
            timeout="20000" max_tries="5"/>
        <VERIFY_SUSPECT timeout="1500"
                        up_thread="false" down_thread="false"/>
        <pbcast.NAKACK max_xmit_size="60000"
                       use_mcast_xmit="false" gc_lag="50"
                       retransmit_timeout="300,600,1200,2400,4800"
                       down_thread="false" up_thread="false"
                       discard_delivered_msgs="true"/>
        <UNICAST timeout="300,600,1200,2400,3600"
                 down_thread="false" up_thread="false"/>
        <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
                       down_thread="false" up_thread="false"
                       max_bytes="400000"/>
        <pbcast.GMS print_local_addr="true" join_timeout="3000"
                    down_thread="false" up_thread="false"
                    join_retry_timeout="2000" shun="true"/>
        <FC max_credits="2000000" down_thread="false" up_thread="false"
            min_threshold="0.10"/>
        <FRAG2 frag_size="60000" down_thread="false" up_thread="false"/>
        <pbcast.STATE_TRANSFER down_thread="false" up_thread="false"/>
      </config>
    </attribute>
</mbean>


作者:
解惑/Cherami
原载: 使用JBossCache作为Hibernate的二级缓存
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
分类: Java
分享到:
评论

相关推荐

    用JBoss的TreeCache作为Hibernate的二级缓存

    标题中的“用JBoss的TreeCache作为Hibernate的二级缓存”指的是在Java应用程序中,使用JBoss TreeCache作为Hibernate框架的二级缓存机制。Hibernate是一个流行的开源对象关系映射(ORM)工具,它允许开发者使用面向...

    Hibernate_二级缓存总结

    Hibernate支持多种二级缓存实现,如EhCache、JBossCache和OsCache等。二级缓存主要用于存储实体对象,提高了数据检索的效率。 **3. QueryCache** QueryCache是Hibernate的另一种缓存机制,用于缓存查询语句及其返回...

    Hibernate缓存机制解说

    配置EhCache作为Hibernate的二级缓存涉及以下步骤: 1. 将EhCache库(如ehcache-1.2.3.jar)添加到项目的类路径中。 2. 在hibernate.cfg.xml文件中指定EhCache为缓存提供商。 3. 复制ehcache.xml配置文件至项目src...

    hibernate基础教程

    Hibernate中使用了一级缓存和二级缓存的机制来提高程序的性能. 一 为什么要使用缓存? 缓存是一块存储区域,可能是一块内存,也可能是一块硬盘.缓存能起到缓冲的作用,把程序经常使用...

    hibernate 缓存机制

    Hibernate支持多种二级缓存插件,如EHCache、OSCache、SwarmCache、JBossCache和TreeCache。以EHCache为例,配置通常在`hibernate.cfg.xml`文件中完成,你需要声明`CacheProvider`为EHCache,并设置相关属性,如缓存...

    JSP 开发之hibernate配置二级缓存的方法

    下面将详细介绍Hibernate二级缓存的配置方法以及常用的缓存插件。 首先,二级缓存是Hibernate提供的一个进程级缓存,它独立于Session,与SessionFactory的生命周期相同。这意味着只要SessionFactory存在,二级缓存...

    hibernate缓存简介

    二级缓存可以实现跨事务的数据共享,例如EhCache、JBossCache和OsCache都是常见的实现。二级缓存不仅存储实体对象,还可以配置为缓存查询结果,提高查询效率。二级缓存被称为全局缓存或进程级缓存,其生命周期与...

    Hibernate缓存笔记

    Hibernate提供了两层缓存机制:第一级缓存和第二级缓存。 - **第一级缓存**:也称为Session缓存,是Hibernate内置并自动管理的缓存。每当Session开启,就会创建一个与之关联的第一级缓存。此缓存用于存储当前...

    Hibernate 2nd-level cache: JBoss Caching 配置与注意事项

    本文将深入探讨如何配置Hibernate使用JBoss Caching作为二级缓存,并提醒你在实现过程中需要注意的一些关键点。 **一、Hibernate 二级缓存概念** 在Hibernate中,一级缓存是Session级别的,每个Session都有一个...

    详解Hibernate缓存与性能优化

    Hibernate本身并不提供完整的二级缓存实现,而是依赖于第三方缓存服务,如EhCache、OSCache、SwarmCache或JBossCache等。这些缓存服务提供了进程内或集群范围的缓存能力,允许更广泛的数据共享和更高的并发性能。 ...

    Hibernate框架全部jar包

    2. **jbosscache-core-3.2.1.GA.jar**:JBoss Cache是一个高性能、可扩展的缓存解决方案,它被Hibernate用作二级缓存。在这个版本中,它可能提供了事务支持和集群缓存功能。 3. **infinispan-core-4.1.0.CR1.jar**...

    Coherence企业级缓存

    这通常涉及到配置Hibernate的二级缓存,将Coherence作为缓存提供商,以便在内存中存储和检索对象。 总的来说,Oracle Coherence通过其独特的分布式缓存技术,为企业级应用提供了高性能、高可用性的数据存储和访问...

    hibernate 调优

    3. **Query 和 list/iterator**:list 仅利用查询缓存,而 iterator 可以利用二级缓存。iterator 在处理大量数据时更为高效,因为它可以逐条加载数据并释放内存。 #### 八、总结 Hibernate 性能调优涉及多个层面,...

    hibernate类库

    2. `jbosscache-core-3.1.0.GA.jar` 和 `jboss-cache-1.4.1.GA.jar`:这两个文件是JBoss Cache的版本,它提供了一种缓存解决方案,可以用来提高Hibernate数据访问的性能。 3. `c3p0-0.9.1.jar`:这是一个流行的...

    1.Coherence企业级缓存(一) 特点.pdf

    ### Coherence企业级缓存详解 #### 一、Coherence概览 Coherence是由Oracle公司提供的企业级分布式集群缓存框架,旨在为大型系统提供高效、可靠的数据管理和缓存服务。其核心特性包括自管理、自恢复以及高可用性,...

    hibernate优化

    - **二级缓存**:利用Hibernate提供的二级缓存机制,可以缓存实体对象和查询结果,大幅减少数据库访问次数。 - **Session管理**:合理管理Session生命周期,避免长时间持有Session导致内存泄露等问题。 - **缓存配置...

Global site tag (gtag.js) - Google Analytics