Linux上の2つのシステム上にWebアプリケーションであるSampleWebAppという2つのサーバーインスタンスがインストールされています。ローカルデータをキャッシュするehcacheとデフォルトのRMIレプリケーションを設定して、Server1で行った変更をServer2にレプリケートしました。 Windows環境では正常に動作しますが、Linux環境では正常に動作しません。エラーが表示されなくても、それは黙って失敗します。 ehcache.xmlファイルで行わEhcache RMIのレプリケーションは、TomcatのLinuxでは動作しませんが、Windows上で正常に動作しますか?
構成は、ファイアウォールが、それが失敗した理由ではないので、レプリケーションをブロックすることができるファイアウォールインストールはありません
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,
rmiUrls=//<ip>:50000/sampleReplicatedCache"
propertySeparator="," />
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" properties="port=40000"/>
<cache name="cmServerReplicatedCache" maxElementsInMemory="100" eternal="true"
memoryStoreEvictionPolicy="LRU" >
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true,
replicatePutsViaCopy=true, replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=false, asynchronousReplicationIntervalMillis=5000"/>
<bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"/>
</cache>
below-です。 ポートが開いている場合もチェックされます。割り当てられたポート50000が開き、Ehcacheはこのポートをリッスンします。問題は、キャッシュに更新がある場合、この変更は複製されないということです。
これに関するご意見やご了解をいただければ幸いです。
ありがとう、 ワンダー!
この問題は解決しました。答えを投稿するのを忘れました。問題はehcache.xmlでトークンを使用していましたが、Springアプリケーションコンテキストの下にファイルがないため、ehcache.xmlファイルではスプリング式リゾルバ($ {}を使用したトークン置換)はサポートされていませんでした。私はトークンを実際の値に置き換え、それがうまくいった。 – Ekanath