Я запускаю 2 экземпляра Tomcat на одном хосте. Каждый экземпляр запускает одно и то же веб-приложение, которое пытается передать некоторые кэши ehcache через репликацию RMI. Я использую конфигурацию автообнаружения в ehcache, поэтому мне не нужно явно определять, какие хосты и какие кэши я хочу реплицировать. Экземпляры ehcache не могут найти друг друга и связаться:
DEBUG (RMIBootstrapCacheLoader.java:211) - cache peers: []
DEBUG (RMIBootstrapCacheLoader.java:133) - Empty list of cache peers for cache org.hibernate.cache.UpdateTimestampsCache. No cache peer to bootstrap from.
Если я попробую то же самое, но на этот раз запущу каждый экземпляр tomcat на отдельном хосте (коробке), тогда все будет работать как часы.
Я что-то делаю не так, или автообнаружение через многоадресную рассылку невозможно, когда экземпляры находятся на одном хосте?
В моей конфигурации используются значения по умолчанию, представленные в документации RMI Distributed Caching:
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
multicastGroupPort=4446, timeToLive=32"/>
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="port=40001, socketTimeoutMillis=2000"/>
И внутри каждой области кеша, которую я хочу воспроизвести, у меня есть:
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="asynchronousReplicationIntervalMillis=500 " />
<bootstrapCacheLoaderFactory
class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" />
Благодарность