Newsgroup: it.comp.java
Titolo: mantenimento di uno stato?

Ciao,
            sto lavorando con jboss su un'applicazione j2ee. Uso due ejb: 
uno di entità (con cui memorizzo i dati nel database hypersonic) e uno di 
sessione (con stato).
L'applicazione (una gestione di conto corrente online) prevede un login 
iniziale e l'utilizzo di un paio di pagine (servlet) per usare 
l'applicazione (effettuare operazioni bancarie).
Questa applicazione viene eseguita in un cluster di 2/3 nodi.
Il problema è: mi è richiesto che esista uno "stato di sessione" che 
dev'essere "mantenuto", anche fra i vari nodi del cluster.
Cos'è lo stato di sessione? Come si fa a mantenere? Come faccio a verificare 
il mantenimento dello stato di sessione?
Grazie.
-- 
SigiTM
Togli 'NOSPAMMM' per rispondermi.
Visita il sito dei Metal Detector: 
http://listen.to/metaldetector
 

 il mantenimento dello stato di sessione?
Forse come sessione intendono la "WEB-Session".
Hai parlato di un cluster di 2-3 nodi: Com'e' esattamente l'architettura 
? Hai 2/3 nodi a livello di WEB-Server, di Servlet-Engine, di 
Application-Server, di database (Non credo, se usi hypersonic) ..
-- 
Giambo - Occhio al filtro antispam _e_ alla whitelist !

 hypersonic) ..
Ho 2 nodi a livello di Application Server.
In pratica:
- Ho sviluppato, con Eclipse, la mia applicazione (gestione di un conto 
corrente bancario), composta da un ejb di entità (con cui memorizzo i dati 
nel database hypersonic) e uno di
sessione con stato.
- Per interagire con questi bean (per accedere tramite login al proprio 
conto, per effettuare le operazioni bancarie, ecc...), ho creato delle 
servlet.
- Ho impacchettato il tutto in un .ear, e ne ho fatto il deploy in JBoss 
(installato nello stesso pc in cui ho sviluppato l'applicazione)
- Tutto, su un pc singolo, funzionava. Era quindi venuto il momento di 
iniziare a lavorare su più nodi.
- Installo Jboss su un altro pc (nodo 2) in lan.
- Avviando Jboss su entrambi i pc, essi si accorgono l'uno dell'altro e 
formano un cluster.
- Deployando il pacchetto sul jboss del nodo 2, l'applicazione funziona. 
Però i due nodi non si "vedono", nel senso che, se ad esempio creo un conto 
corrente sul nodo 2, esso non esiste sul nodo 1. Questo è dovuto al fatto 
che il database utilizzato è Hypersonic, che di default è in-process (quindi 
ce n'è uno diverso per ogni nodo).
- Dopo aver provato diverse strade, ho concluso che l'unico modo per fare 
ciò era usare l'hypersonic del nodo 1 in modalità "tcp connection". E 
configurare i jboss di entrambi i nodi (e anche degli eventuali nodi futuri) 
in modo che si colleghino tutti al database hypersonic del nodo 1 (indicando 
nei file di configurazione il suo ip). Non so se sia la soluzione più 
elegante (il nodo 1 deve essere sempre acceso), però è l'unica che sono 
riuscito a far funzionare.
Ora quindi mi chiedo (e ti richiedo): cosa significa (in pratica, nella mia 
applicazione e nel mio cluster) che "deve esistere uno stato di sessione che 
dev'essere mantenuto"?
Ho formulato varie ipotesi:
- Significa che ogni utente è identificato da login e password
- Significa che i dati non vengono persi killando jboss (??)
- Significa che i database devono essere comunicanti tra i vari nodi (cosa 
che ho fatto collegandomi per tutti i nodi al db del nodo 1)
- Altro??
Grazie per l'aiuto e buon anno :)


 dev'essere mantenuto"?
Potrebbe essere un'affermazioni triviale del tipo "L'utente, dopo aver 
effettuato il login, avra' una sessione di tipo HTTP" opure qualcosa di 
piu' complesso che implica la migrazione della sessione da un nodo 
all'altro nel caso di load-balancing o di failure di uno dei nodi.
