我想把这个告诉那些有类似问题的人。
信息:运行linux (ubuntu),x64,最新的java版本(1.7.25),最新的tomcat (7.40)。
我在本地设置了两个apache tomcat,并在这两个tomcat上设置了相同的webapp,以测试一些ehcache功能和复制的缓存,一切都很好。
一旦我用第二个tomcat实例设置了一个专用服务器,EhCache就不能在我的PC和服务器之间复制(仍处于测试阶段)。
所有的配置基本上是相同的,当然没有不同的ip地址。因为我没有使用DNS中的服务器和计算机的主机名,所以我将主机名添加到pc和服务器上的/etc/hosts-file中-我认为这样就足够了。
在成为一个讨厌的人几个小时后--咬紧牙关--我决定删除所有添加到/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"/>发布于 2013-06-26 15:33:46
解决方案是使用组织DNS中的主机名,而不是依赖于我自己在/etc/hosts中的条目
https://stackoverflow.com/questions/17314121
复制相似问题