Я запускаю 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" />
спасибо