Sadece kısa bir süre için geçerli olan veriler için bir jboss önbellek oluşturmaya çalışıyorum. Bu süreden sonra veriler atılmalı ve ilgili hafıza boşaltılmalıdır.JBoss-Cache bölgesinin tahliye edilmesinden nasıl korunulur?
/my_region
/session_1
/datanode_1
attribute1: value1
/datanode_2
attribute2: value2
/session_2
...
/session_3
...
...
...
Ve tahliye politikası yapılandırma şöyle görünür:
önbellek böyle düzenlenmiştir
<attribute name="EvictionPolicyClass">org.jboss.cache.eviction.LRUPolicy</attribute>
<attribute name="EvictionPolicyConfig">
<config>
<attribute name="wakeUpIntervalSeconds">5</attribute>
<region name="/my_region">
<attribute name="maxNodes">100</attribute>
<attribute name="timeToLiveSeconds">1800</attribute>
</region>
</config>
</attribute>
Bu çalışır: /my_region
100'den fazla çocuk, en önce kullanılan çocuklar aldığında Bölge tahliye edilir ve böylece bölge 100 çocuğa geri çekilir.
LRUPolicy
ile ilgili sorun, tahliye edilen düğümlerin they're not completely removed, but marked with jboss:internal:uninitialized: null
instead numaralı çocuğa sahip olmasıdır. Bu davranış, kalıcı bir depodan getirilmekten kaçınmak için önbelleğe alınan varlıklar için mantıklıdır, ancak kalıcı olmayan ve hiçbir zaman erişilemeyen öğelerin önbelleğe alınması için uygun değildir.
Düğümleri kaldırmak için, kaldırmayla birlikte geçersiz kılmayı geçersiz kılan bir LRUPolicy
uzantısı oluşturdum.
@Override
public void evict(Fqn fqn) throws Exception {
cache_.remove(fqn);
}
Bu yeni politika arkasında joss:internal:uninitialized: null
's bırakmaz fakat maxNodes
ulaşıldığında o /my_region
düğümünü kaldırır. LRUPolicy
'u geri yüklediğimde, bölge düğümünün kendisinin gerçekten tahliye edildiğini ve unitialized
etiketini aldığını fark ettim, ancak en son kullanılmış 100 çocuk hala duruyor.
Bölgenin kendisinin tahliye edilmesini nasıl önleyebilirim? eviction from expiration'u ayırmadan tahliye yerine kaldırmanın daha iyi bir yolu var mı?
jboss-cache sürüm 1.3.0.SP4 kullanıyorum.
jboss-cache'in hangi sürümü var? – skaffman
1.3.0.SP4, soruya ekleyeceğim. – hvrauhal