0

我正在尝试为两个不同的服务器设置手动复制 Ehcache。以下是我的配置:

<cache name="codeTaskCache" maxElementsInMemory="1000" eternal="false"
 timeToIdleSeconds="0" timeToLiveSeconds="0" overflowToDisk="false" />


 <cacheManagerPeerProviderFactory class=
                      "net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
                      properties="peerDiscovery=manual,
                      rmiUrls=//server1:40001/codeTaskCache |     //server2:40001/codeTaskCache"
                      propertySeparator="," />` 

在两个不同的 unix 机器上运行的两个 tomcat 服务器上存在相同的配置。

从 server1 -> server2 复制可以正常工作,但不能从 server2 -> server1 复制,这很奇怪。

在文档中,他们有一条语句'rmiUrls 是正在配置的服务器的缓存对等方的列表。不要将正在配置的服务器包括在列表中。

但如果它以一种方式工作,那么为什么不以另一种方式工作呢?有人可以对此有所了解吗?提前致谢。

4

1 回答 1

0

RMI url 不应指向自身,而应指向其他 ehcache 实例——至少这对我有用。

还要确保主机名可以从两台服务器解析,并且在最后一次绝望的尝试中,您甚至可以尝试在侦听器部分 XML 的侦听语句中使用“hostname=name_of_server_dot_domain_dot_com”。

于 2013-06-26T08:39:19.260 回答