HOWTO Cambiare la strategia di rimozione della cache in HDIV
Domanda
Sto usando hdiv Web Application Framework per un'applicazione Web Java. Ogni nuova pagina web-page genera informazioni sulla sicurezza interna dell'Hiv memorizzate nella cache e utilizzate per i controlli di sicurezza.
Ho il seguente Szenario:
Ho una pagina dell'ordine che apre una pagina di conferma per 2 secondi quando qualcosa è stato aggiunto o rimosso dal carrello.
Dopo 50 popups La pagina dell'ordine sottostrato viene rimossa dalla cache e quindi si verifica un errore nell'app.
Qualcuno sa come influenzare la strategia di rimozione della cache dell'Hiv per mantenere viva il bashage?
Un modo in cui intorno è aumentare Org.hdiv.Session.StateCache.MaxSize da 50 a 500.
Ma questo curare solo i sintomi non la causa sottostante.
Aggiornamento:
Utilizzo della soluzione @rbelasko
Sono riuscito a utilizzare il org.hdiv.session.StateCache
originale per modificare il maxsize a 20 e verificato nel registro di debug che i cachentrie vengono licenziati dopo 20 voci.
Quando l'ho cambiato per usare la mia stessa implementazione, non ha funzionato
Definizione del bean
.
<bean id="cache" class="com.mycompany.session.StateCacheTest" singleton="false"
init-method="init">
<property name="maxSize">
<value>20</value>
</property>
</bean>
La mia classe
.
public class StateCacheTest extends StateCache
{
private static final Log log = LogFactory.getLog(StateCacheTest.class);
public StateCacheTest()
{
log.debug("StateCache()");
}
@Override
public void setMaxSize(final int maxSize)
{
super.setMaxSize(maxSize);
if (log.isDebugEnabled())
{
log.debug("setMaxSize to " + maxSize);
}
}
}
Nel registro dei debug non erano voci da StatoCachetest
Qualche idea?
Aggiornamento 2:
Mentre non sono stato in grado di caricare un'implementazione istatecache diversa tramite la primavera sono stato in grado di rendere questo errore meno probabile usando
.
<hdiv:config ... maxPagesPerSession="200" ... />
La definizione delle impostazioni del bean
.
<property name="maxSize">
<value>20</value>
</property>
non ha avuto alcun effetto sul cacciatore nel mio sistema.
Soluzione
è possibile creare un https://github.com/hdiv//github.com/hdiv/hdiv/blob/master/hdiv-core/src/main/java/org/hdiv/session/istatecache.java "rel rel="Nofollow"> ISTATECACHE Implementazione interfaccia.
Utilizzo della configurazione esplicita dell'Hiv (non utilizzando il nuovo schema personalizzato di HDIV) Questa è la configurazione predefinita per il bean "cache":
<bean id="cache" class="org.hdiv.session.StateCache" singleton="false"
init-method="init">
<property name="maxSize">
<value>200</value>
</property>
</bean>
.
È possibile creare la propria implementazione e implementare la strategia che si adatta alle tue esigenze.
Saluti,
roberto