Newsgroup: it.comp.java
Titolo: Tomcat sessioni ???

Ciao a tutti,
ho fatto un piccolo sito con Tomcat (ultima versione 4) e come DB sono stato
obbligto ad usare MSaccess (spero vivamente di passare a mysql), il tutto
gira su Windows2000. Ho creato una classe che mi estrappola vari dati dal
DB, circa 1M; quindi l'ho inserita nella sessione per poterla utilizzare in
altre pagine:
Esempio:
MiaClasse c = new MiaClasse()        //La classe si riempie prendendo i dati
da DB (circa 1M)
quindi (in una pagina JSP):
session.setParameter("Pippo",c);
...
Il problema é il seguente: se tanti si collegano contemporaneamente a Tomcat
dopo un pò non restituisce più niente!!!!! Io penso sia un problema di
memoria legato alle sessioni, voi cosa ne pensate? C'é un limite alla
memoria disponibile per le sessioni?
Come posso aumentare la memoria massima che può utilizzare Tomcat (ho
provato con -Xms128 ma non funziona)?
Come posso trasportare tanti dati da una pagina all'altra senza effettuare
nuovamante la connessione al DB?
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 100,000 Newsgroups - 19 Different Servers! =-----

memoria disponibile per le sessioni?
nel web xml della tua web-app prova a vedere se e' configurato questo
paramentro 
 <session-config>
  <session-timeout>30</session-timeout>
 </session-config>
il numero e' espresso in minuti
indica la durata delle sessioni della tua web-app.
questo potrebbe essere un motivo.
Cmq se puoi a meno che tu non debba fare un carello della spesa cerca
di evitare il piu' possibile la sessione.
se usi il send redirect per servire le pagine dalla servlet sei
obbligato ad usare la sessione.
Usando il forward nella servlet invece:
Object aObject = new Object();
request.setAttribute("aMnemonicKey", aObject);
String page = "jsp/mypage.jsp";
this.getServletContext().getRequestDispatcher(page).forward(request,response);
nella jsp puoi fare 
Object aObject = request.getAttribute("aMnemonicKey");
Nel caso tu abbia settato una ogetto di un classe specifica dovrai
castarlo.
Questo sistema e' piu "leggero" rispetto al tenersi tutto in sessione,
resta il fatto cmq che, come detto prima, per i carelli della spesa li
devi tenere in sessione.
Ciao

Come faccio a convertire un DB MSaccess in firebird??
"sunblade" <nos...@nospam.xxx> ha scritto nel messaggio
news:68oo00lqipo19n1vg...@4ax.com...



....
Ok, tutto bene, ma ti sei ricordato di rendere MiaClasse
serializzabile??
Quando Tomcat non ha abbastanza memoria, serializza la
sessione su disco
con la normale serializzazione java. Questo implica che se
non vuoi guali, ciň che metti in
sessione _deve_ essere Serializable.
CarloP.

 altre pagine:
considera cmq che MSAccess consente l'utilizzo multiplo da parte di pochi
utenti....
trullox :o)
PS: cosě sapevo, se č una cavolata FERMATEMI!!!! :o)

Tutto vero!!!
Provare x credere!
By Peggiore
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

esatto, mi sembra che già dopo i 10 accessi si incasina

 esatto, mi sembra che già dopo i 10 accessi si incasina


 
Usa una cache ! Ovviamente non c'è una "ricetta pronta", dipende da cosa 
devi fare. Ad esempio, se il famigerato megabyte di dati serve a TUTTI 
gli utenti senza distinzione, prova a memorizzarlo nel ServletContext, 
che è unico per web-application:
.... codice come prima
context.setParameter("Pippo",c);
Se invece per ogni utente che si collega devi tirare su 1M di dati, beh, 
allora c'è un problema di design e devi rivedere l'applicazione e 
ottimizzare l'accesso ai dati usati più di frequente (senza offesa, eh...)
Facci sapere come è andata !

 ha scritto nel messaggio
news:bulgln$3lr$1...@tok.cu.mi.it...



 nuovamante la connessione al DB?
Il vero problema e' di natura architetturale. Non devi effettuare una
apertura di connessione per ogni utente che si connette alla tua WebApp, ma
devi usare un pool di connessioni.