【问题标题】:Ehcache RMI replication does not work on linux with tomcat but works fine on windows?Ehcache RMI 复制在带有 tomcat 的 Linux 上不起作用,但在 Windows 上工作正常?
【发布时间】:2012-02-09 08:46:35
【问题描述】:

我们已经在 Linux 上的两个系统上安装了一个服务器的两个实例,这是一个 Web 应用程序,例如 SampleWebApp。我们已经配置了 ehcache 来缓存本地数据,还配置了一个默认的 RMI 复制来将在 Server1 上完成的更改复制到 Server2。复制在 Windows 环境下工作正常,但在 Linux 环境下不工作。即使没有打印错误,它也会默默地失败。

ehcache.xml 文件中的配置如下-

    <cacheManagerPeerProviderFactory              class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
    properties="peerDiscovery=manual,
    rmiUrls=//<ip>:50000/sampleReplicatedCache"
    propertySeparator="," />
    <cacheManagerPeerListenerFactory             class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"   properties="port=40000"/>
    <cache name="cmServerReplicatedCache" maxElementsInMemory="100" eternal="true"
    memoryStoreEvictionPolicy="LRU" >
    <cacheEventListenerFactory       class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
    properties="replicateAsynchronously=true, replicatePuts=true,
    replicatePutsViaCopy=true, replicateUpdates=true, replicateUpdatesViaCopy=true,           replicateRemovals=false,   asynchronousReplicationIntervalMillis=5000"/>
    <bootstrapCacheLoaderFactory      class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"/>
    </cache>

没有安装可以阻止复制的防火墙,因此防火墙不是它失败的原因。 还检查端口是否打开。分配的端口 50000 被打开,Ehcache 监听这个端口。问题是如果缓存中有更新,则不会复制此更改。

对此的任何建议或澄清将不胜感激。

谢谢, 奇迹!

【问题讨论】:

  • 这个问题解决了。忘记发布答案了。问题是我在 ehcache.xml 中使用了令牌,但在 ehcache.xml 文件中不支持 spring 表达式解析器(使用 ${} 替换令牌),因为该文件不属于 spring 应用程序上下文。我用实际值替换了标记,然后它起作用了。

标签: jakarta-ee web ehcache distributed-caching


【解决方案1】:

这个问题解决了。忘记发布答案了。问题是我在 ehcache.xml 中使用了令牌,但在 ehcache.xml 文件中不支持 spring 表达式解析器(使用 ${} 替换令牌),因为该文件不属于 spring 应用程序上下文。我用实际值替换了标记,然后它起作用了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2023-03-31
    • 2022-08-22
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多