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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top