2010-03-03 7 views
1

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

ответ

0

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

0

Основываясь на вашем описании, вы запускаете ehcache в режиме RMI с автоматическим обнаружением одноадресной рассылки multicast. Звучит так же, как и уведомление о событии кэша. Это мое предположение:

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

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

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

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

<cache name="sampleDistributedCache2" 
     maxElementsInMemory="10" 
     eternal="false"       
     timeToIdleSeconds="100" 
     timeToLiveSeconds="100" 
     overflowToDisk="false"></cache> 
Смежные вопросы