【问题标题】:Problem defaultCache and cache in distributed environment (Inconsistent data)分布式环境下的问题 defaultCache 和缓存(数据不一致)
【发布时间】:2011-02-28 13:03:18
【问题描述】:

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

你知道为什么吗?

我不想设置设置aumaticamente defaultCache的130个缓存

提前致谢

P。 S.我一直猜想什么没有指定,将EHCache作为模板使用defaultCache设置。

案例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>  

【问题讨论】:

    标签: java distributed liferay ehcache replicate


    【解决方案1】:

    由于您没有说明如何使用缓存,因此很难猜测您真正在做什么以及您的意思是什么不一致的错误。

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

    【讨论】:

    • 这个问题出现在 liferay 门户中,当我在集群的一台机器上添加一个 portlet 时,我在 Layout 中发现了它,而我在另一个机器上看不到它。正如我所说,如果我输入“案例 B”,它会起作用,但在“案例 A”中,我会看到不一致的数据,我认为它应该具有相同的行为。
    【解决方案2】:

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

    hibernate-clustered.xml

    liferay-multi-vm-clustered.xml

    【讨论】:

    • 不同之处在于我们不是多播。我们正在执行手动 peerDiscovery 并手动添加 defaultCache 正在创建的每个缓存(之前列出,因为不可能知道它们是哪一个)。现在我们发现了不一致的数据问题,但不是在每个缓存中。这很奇怪:S
    猜你喜欢
    • 2015-04-21
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2012-04-25
    • 2016-03-30
    • 2015-07-21
    • 2011-10-22
    相关资源
    最近更新 更多