Как очистить кеш-объект (память) через Java - PullRequest
0 голосов
/ 12 марта 2012

Фрагмент кода, используемый для выделения кэш-памяти:

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 map). Теперь, когда я передаю 2, которое недоступно в кеше, ему нужно снова загрузить определенные данные в кеш, но перед этим лучше очистить данные версии 1. Есть ли у нас такие команды, как flush для очистки определенных данных?

Надеюсь, у меня возник вопрос с вопросом. Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

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

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

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

0 голосов
/ 12 марта 2012

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

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

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

public Cache getCache(){
    Cache cache = CacheFactory.getCache(cacheKey);
    long ttl=0;
    cache.setTtl(ttl);
    return cache;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...