2012-03-12 3 views
0

фрагмент кода, используемый для выделения кэш-памяти:Как очистить кэш объект (память) через Java

private static Cache cache = CacheManager.getInstance().getCache(CACHE_NAME); 

public static HashMap<String, XXX> getxxCodes(int version) { 
     HashMap<String, XXX> xxCodes = new HashMap<String, XXX>(); 
     try{ 
      Object[] cacheResult = cache.get(Constants.I_XX_CODES_FOR_XXX); 
      if (Boolean.FALSE.equals(cacheResult[1])) { 
     cache.put(Constants.I_XX_CODES_FOR_XXX, id.loadXXHashMap(version)); 
       cacheResult = cache.get(Constants.I_XX_CODES_FOR_XXX); 
      } 
      if(cacheResult[0]!=null){ 
       xxCodes = (HashMap<String, XXX>)cacheResult[0]; 
      } 
     }catch(Exception e){ 
      logger.error("Exception occured while loading Data from I10_DRG_XX",e); 
     } 
     return xxCodes; 
    } 

Теперь в какой-то момент времени, нужно загрузить некоторую другую «версию» в кэш-памяти. Здесь версия может быть 1, 2, 3 и т. Д. Таким образом, в кеше сначала хранятся данные версии 1 (карта Hash). Теперь, когда я пропускаю 2, которые недоступны в кеше, ему нужно снова загружать определенные данные в кеш, но до этого лучше очистить данные версии 1. У нас есть команды вроде flush для очистки определенных данных?

Я надеюсь, что с моим вопросом ясно. Спасибо за помощь.

+1

Какой пакет (ы) вы используете Cache и CacheManager? (Я не знаю этих классов, существующих в стандартных библиотеках Java.) –

ответ

0

Я использовал следующий код и его правильной работе,

public void flushCache() 
    { 
     cache.flush(cacheKeyName) 
    } 

Это удалит экземпляр кеша из памяти. Спасибо за вашу помощь.

0

Это позволит удалить объект из кэша (Успенская: Weblogic кэш) .. Он устанавливает Время жить на "0"

Cache cache = getCache(); 
cache.remove(cacheKey); 

getCache() может быть реализован следующим образом ...

public Cache getCache(){ 
    Cache cache = CacheFactory.getCache(cacheKey); 
    long ttl=0; 
    cache.setTtl(ttl); 
    return cache; 
} 
Смежные вопросы