Come cancellare la cache dell’oggetto (la memoria) tramite Java

Frammento di codice utilizzato per allocare memoria cache:

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;
    }

Ora ad un certo punto ho bisogno di caricare qualche altra “versione” in memoria cache. Qui la versione può essere 1, 2, 3, etc. Così la cache di primo contiene la versione 1 data (mappa Hash). Ora, quando sto passando 2 che non è disponibile in cache deve caricare i dati specifici di nuovo in cache, ma prima è meglio cancellare la versione 1 di dati. Non ci sono comandi come filo per cancellare i dati specifici?

Spero che sia chiaro con la mia domanda. Grazie per l’aiuto.

Quale pacchetto(s) sono Cache e gestione cache? (Io non sono a conoscenza di queste classi esistenti in le librerie Java standard.)

OriginaleL’autore JavaBits | 2012-03-12

2 Replies
  1. 0

    Questo sarà rimuovere l’oggetto dalla Cache(Assunzione:Weblogic cache)..Si imposta il Tempo per Vivere a “0”

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

    getCache() può essere implementato come segue…

    public Cache getCache(){
        Cache cache = CacheFactory.getCache(cacheKey);
        long ttl=0;
        cache.setTtl(ttl);
        return cache;
    }

    OriginaleL’autore Shashank Kadne

  2. 0

    Ho usato il seguente codice e funziona correttamente,

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

    In questo modo si elimina l’Istanza di cache dalla memoria.
    Grazie per il vostro aiuto.

    OriginaleL’autore JavaBits

Lascia un commento