JSF Nessun timeout di sessione. Quali sono gli svantaggi?
-
27-10-2019 - |
Domanda
Ho una piccola applicazione Web JSF su Was7.0 con una sola pagina ma una base di utenti abbastanza grande.
Posso dichiarare tutti (1) fagioli come ambito di richiesta e utilizzare anche javax.faces.state_saving_method client senza imbattersi in problemi di memoria sul server utilizzando una sessione non scadente?
Come funzionerebbe per applicazioni più grandi?
Motivo: sto cercando di risolvere un problema in cui è 7.0 rapidamente mentre IBM si occupa del mio PMR.
Modifica: a questo punto non ho le risorse per provare a misurarlo da solo e lascerei l'app così com'è (sperando di non infastidire troppi utenti).
Soluzione
Non devi necessariamente cambiare l'ambito del fagiolo. Mantieni i fagioli nell'ambito a cui appartengono. Solo se stai abusando di fagioli con ambito per tenere i dati con ambito, allora la storia cambia. La richiesta o la visualizzazione dei dati con ambito appartengono alla richiesta o alla visualizzazione di fagioli con scoppi, non fagioli con ambito. I fagioli con ambito di sessione dovrebbero essere utilizzati solo per contenere dati di sessione, come l'utente loggato, le sue preferenze a livello di sito, la lingua scelta, ecc.
Modifica del metodo di salvamento statale dal server a client risolverà sicuramente il ViewExpiredException
Sulle visualizzazioni la cui sessione di supporto è stata scaduta. Diminuirà l'utilizzo della memoria del server ma aumenterà l'utilizzo della larghezza di banda della rete di Server. Ma se stai già usando GZIP (o non lo era già; quindi accendilo), allora l'impatto è piuttosto minore.