Репликация Ehcache RMI не работает в Linux с tomcat, но отлично работает в Windows?

мы установили два экземпляра сервера, который является веб-приложением, например SampleWebApp, в двух системах на Linux. Мы настроили ehcache для кэширования локальных данных, а также репликацию RMI по умолчанию для репликации изменений, сделанных на Server1, на Server2. Репликация отлично работает в среде Windows, но не работает в среде Linux. Даже если ошибка не напечатана, он молча терпит неудачу.

Конфигурации, выполненные в файле ehcache.xml, приведены ниже:

    <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>

Не установлен брандмауэр, который мог бы блокировать репликацию, поэтому брандмауэр не является причиной сбоя. Также проверил, открыты ли порты. Выделенный порт 50000 открыт, и Ehcache прослушивает этот порт. Проблема в том, что если в кеше есть обновление, это изменение не реплицируется.

Любые предложения или разъяснения по этому поводу будут оценены.

Спасибо, Чудо!


person Ekanath    schedule 09.02.2012    source источник
comment
Эта проблема решена. Забыл написать ответ. Проблема заключалась в том, что я использовал токены в ehcache.xml, но преобразователь выражения Spring (замена токена с помощью ${}) не поддерживается в файле ehcache.xml, поскольку файл не входит в контекст приложения Spring. Я заменил токены реальными значениями, и тогда это сработало.   -  person Ekanath    schedule 23.10.2013


Ответы (1)


Эта проблема решена. Забыл написать ответ. Проблема заключалась в том, что я использовал токены в ehcache.xml, но преобразователь выражения Spring (замена токена с помощью ${}) не поддерживается в файле ehcache.xml, поскольку файл не входит в контекст приложения Spring. Я заменил токены реальными значениями, и тогда это сработало.

person Ekanath    schedule 23.10.2013