Ehcache - распределенный RMI не работает - PullRequest
1 голос
/ 03 марта 2010

У меня странная проблема с ehcache 2.0, и я надеюсь, что кто-то может мне помочь. Я настроил кластер из двух хостов, A и B. Я вижу, что сердцебиение принимается на обоих концах, поэтому я уверен, что сетевые и многоадресные вещи работают Проблема в том, что я помещаю элемент в кеш на хосте A, в журналах хоста B я вижу, что он получает удаленный доступ. Но когда я запрашиваю тот же элемент с хоста B, он уходит в базу данных и тем не менее выполняет запрос. Что может быть причиной этого? Благодарю за любые указатели!

Ответы [ 2 ]

0 голосов
/ 19 марта 2010

На основании вашего описания вы запускаете ehcache в режиме RMI с многоадресным автоматическим обнаружением одноранговых узлов.Похоже, уведомление о событиях кэша тоже работает.Это моё предположение:

В зависимости от настройки срока действия в вашей конфигурации, срок действия элемента мог истечь, когда вы «получаете» с хоста B.

В документации http://ehcache.org/documentation/storage_options.html, подСтратегия использования памяти, спулинга и истечения срока действия:

Когда элемент получает get или getQuiet, он проверяется на срок действия.Если срок действия истек, он удаляется и возвращается значение null.

. Вы можете взглянуть на свой файл конфигурации, проверить значения для eternal, timeToIdleSeconds и timeToLiveSeconds.

<cache name="sampleDistributedCache2"
       maxElementsInMemory="10"
       eternal="false"                         
       timeToIdleSeconds="100"
       timeToLiveSeconds="100"
       overflowToDisk="false"></cache>
0 голосов
/ 19 марта 2010

Используете ли вы Hibernate и Ehcache в качестве кэша второго уровня? Или просто кеш выше БД?

...