Ehcache ничего не хранит в файле - PullRequest
0 голосов
/ 07 сентября 2011

Я пытаюсь сделать простую вещь, например, сохранить что-то в кеше и получить его в следующий раз, если оно существует. По какой-то причине все работает нормально в первый раз, когда вызывается второй раз, все в файле кеша удаляется и кеш создается заново. Вот мой конфигурационный файл ehcache

<ehcache>
  <diskStore path="<TEMP_DIR_PATH>" />
  <defaultCache maxElementsInMemory="10000" eternal="true"
      timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"
      maxElementsOnDisk="10000000" diskPersistent="true"
      diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" />
   <cache name="mycache" maxElementsInMemory="1" eternal="true"
       overflowToDisk="true" timeToIdleSeconds="300" timeToLiveSeconds="600"
       diskPersistent="true" diskExpiryThreadIntervalSeconds="1"
       memoryStoreEvictionPolicy="LFU"/>
</ehcache>

Код фактически создает 2 файла, один из которых называется mycache.index, а другой - mycache.data. Код для помещения значения в кэш приведен ниже.

Cache cache = cacheManager.getCache("mycache");
Element myElement= new Element("KEY1","This will be stored in cache");
cache.put(myElement);

Может ли кто-нибудь указать, где что-то идет не так?

Я хотел использовать один и тот же сохраненный файл кэша каждый раз и создавать новый файл, только если файл данных отсутствует.

Ответы [ 2 ]

0 голосов
/ 03 мая 2013
CacheManager.getInstance().addCache("test");
        CacheManager.getInstance().getCache("test").put(new Element("name", "abhi"));
        CacheManager.getInstance().getCache("test").put(new Element("class", "ten"));
        CacheManager.getInstance().getCache("test").put(new Element("age", "24"));

        Element elt = CacheManager.getInstance().getCache("test").get("class");
        //return (elt == null ? null : elt.getObjectValue());
        System.out.println(elt);

Надеюсь, это поможет и отлично подойдет для хранения.

0 голосов
/ 08 сентября 2011

Вам нужно позвонить cache.flush() или cache.dispose(), чтобы сбросить ожидающие данные на диск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...