Ehcache没有复制 - (解决方案)

时间:2013-06-26 07:33:46

标签: ehcache

以为我会把这个问题告诉任何有类似问题的人。

信息:运行linux(ubuntu),x64,最新的java版本(1.7.25),最新的tomcat(7.40)。

我在本地设置了两个apache tomcats,并在两个tomcats上设置了相同的webapp,以测试一些ehcache功能和复制的缓存,一切都很棒。

我设置了第二个tomcat实例的专用服务器后,EhCache没有在我的PC和服务器之间复制(仍在测试阶段)。

所有配置基本相同,当然ip地址不同。 由于我没有使用DNS中的服务器和计算机的主机名,而是在PC和服务器上的/ etc / hosts文件中添加了主机名 - 认为这就足够了。

经过几个小时的讨厌 - 磨牙 - 我决定将所有添加的条目删除到/ etc / hosts,而是使用我们公司DNS中的无聊主机名(pc-103-15-87)。 xxxxx.com和pc-104-15-87.xxxxx.com)然后一切正常。

在我获得解决方案之前运行'wireshark'它向我展示了两个ehcache-instances正在聊天,但是ip-address'127.0.0.1'(可能用作某种回调地址)被“提到”了两个ehcache实例之间的通信。

这导致我删除了我在/ etc / hosts中添加的所有内容并使用DNS可解析的名称。现在'wireshark'中的所有内容都向我展示了所有正确的IP地址,而且一切都是黄金。

希望这可以帮助任何有类似问题的人。

XML:

对等方的信息:

<cacheManagerPeerProviderFactory
    class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
    properties="peerDiscovery=manual,
    rmiUrls=//pc-103-15-87.xxxxx.com:40002/persons|//pc-103-15-87.xxxxx.com:40002/wordCache"/>

和此服务器上的监听器:

<cacheManagerPeerListenerFactory 
    class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
    properties="hostname=pc-104-15-87.xxxxx.com, port=40002, socketTimeoutMillis=3000"/>

1 个答案:

答案 0 :(得分:0)

解决方案是使用组织DNS中的位置的主机名,而不是依赖于/ etc / hosts中我自己的条目