问题分布式环境中的defaultCache和缓存(不一致的数据)

时间:2011-02-28 13:03:18

标签: java distributed liferay ehcache replicate

使用相同的配置,只有defaultCache,我得到不一致的数据(案例A)。但是,如果我添加一个额外的缓存条目将不会得到那些不一致的错误(案例B)。

你知道为什么吗?

我不想设置设置aumaticamente defaultCache

的130个缓存

提前致谢

P上。 S.我估计所有未指定的内容,将使用defaultCache设置将EHCache作为模板。

案例A:

<defaultCache  
     maxElementsInMemory="10000"  
     eternal="false"  
     timeToIdleSeconds="0"  
     overflowToDisk="false"  

>  
    <cacheEventListenerFactory  
         class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"  

     />  
     <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" />  
 </defaultCache>

`

案例B:

<defaultCache  
     maxElementsInMemory="10000"  
     eternal="false"  
     timeToIdleSeconds="0"  
     overflowToDisk="false"  

 >  
     <cacheEventListenerFactory  
         class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"  

     />  
     <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" />  
 </defaultCache>  

 <cache  
     name="com.liferay.portal.model.impl.LayoutImpl"  
     maxElementsInMemory="10000"  
     eternal="false"  
     timeToIdleSeconds="0"  
     overflowToDisk="false"  
 >  
     <cacheEventListenerFactory  
         class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"  
     />  
     <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" />  
 </cache>  

2 个答案:

答案 0 :(得分:0)

由于你还没有说过如何使用缓存,因此很难猜出你在做什么以及你所说的不一致错误。

也许您没有使用缓存实体缓存查询结果,这使得实体可以从缓存和数据库查询中读取?有很多可能的情况。

答案 1 :(得分:0)

我们尝试在群集环境中运行Liferay并得到相同的错误:默认配置不起作用。 我做了一些更改,也许我的配置会帮助你。

hibernate-clustered.xml

liferay-multi-vm-clustered.xml