2013-06-26 88 views
0

想到我会让这个问题出现给任何有类似问题的人。信息:运行linux(ubuntu),x64,最新java版本(1.7.25),最新tomcat(7.40)。Ehcache不复制 - (解决方案)

我已经在本地设置了两个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实例正在聊天,但ip地址'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"/> 

回答

0

的解决方案是使用中的DNS,其中主机名该组织,而不是依靠我自己的条目在/ etc/hosts中