0

2 つの異なるサーバーに対して、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="," />` 

2 つの異なる 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 に答える