# Unbegrenzte Session



## Tho82 (11. Dez 2008)

Hallo,

ich habe in meiner Webapplikation in der web.xml folgendes angegeben: 


```
<session-config>
    <session-timeout>120</session-timeout>
  </session-config>
```

Die Session wird also nach 2 Stunden beendet. Da ich aber keine Weboberfläche habe sondern nur einen Applikation im Hintergrund unbegrenzt lange laufen lassen will, würde ich gerne wissen, wie ich die session auf unbegrenzt setzen kann.

Vielen Dank und Gruß 

Tho


----------



## FArt (11. Dez 2008)

Eine unbegrenzte (oder sehr hohe) Lebensdauer einer Session macht in der Regel keinen Sinn, da das ein potentielles Speicherleck ist.

Schau mal in die Doku des Webservers deiner Wahl.


----------



## Tho82 (11. Dez 2008)

FArt hat gesagt.:
			
		

> Eine unbegrenzte (oder sehr hohe) Lebensdauer einer Session macht in der Regel keinen Sinn, da das ein potentielles Speicherleck ist.
> 
> Schau mal in die Doku des Webservers deiner Wahl.



In diesem Fall macht es aber Sinn, da ich auf die im Hintergrund laufende Applikation mit einer Administrationsoberfläche zugreifen will. Die im Hintergrund laufende Applikation ist ein eigener Thread aber wird leider beim Sessiontimeout beendet (In der Adminoberfläche hole ich mir die Hintergrundapplikation mit .getInstance()  (Singleton)).

Weitere ideen?


----------



## Tho82 (11. Dez 2008)

FArt hat gesagt.:
			
		

> Eine unbegrenzte (oder sehr hohe) Lebensdauer einer Session macht in der Regel keinen Sinn, da das ein potentielles Speicherleck ist.
> 
> Schau mal in die Doku des Webservers deiner Wahl.



... arbeite mit Tomcat...


----------



## tfa (11. Dez 2008)

Bastel dir ein automatisches Reconnect bei einem Session-Timeout. Dann bekommt der Anwender nichts davon mit, außer, dass es vielleicht ein bisschen hakt.

Unendliche Sessiondauer ist wie gesagt schlecht. Wenn die Clients abstürzen oder nicht korrekt geschlossen werden, wirst du die Sessions nie wieder los.


----------



## SlaterB (11. Dez 2008)

was kann eigentlich eine Session so wichtiges machen?
kannst doch die Daten genausogut in einer statischen Variable speichern oder in irgendwas eigenem nachgebauten
(gerne mit Map Key ClientId -> Value Daten)

alles mögliche nachzubauen ist zwar nicht schön, aber so eine einfache Map (Session) + bisschen Zuordnung zum Client können ja nicht mehr als 100 Zeilen Code sein

> Unendliche Sessiondauer ist wie gesagt schlecht. Wenn die Clients abstürzen oder nicht korrekt geschlossen werden, wirst du die Sessions nie wieder los.

..

mein Gott,
ein endlos offener Window-Explorer ist schlimm, der User könnte ja vergessen ihn auszuschalten..,
es ist KEINE normale Web-Applikation


----------



## FArt (11. Dez 2008)

SlaterB hat gesagt.:
			
		

> was kann eigentlich eine Session so wichtiges machen?
> kannst doch die Daten genausogut in einer statischen Variable speichern oder in irgendwas eigenem nachgebauten
> (gerne mit Map Key ClientId -> Value Daten)
> 
> ...



 ???:L  :?:  :autsch:  :?: 

Wie meinen?

Was ist eine normale Webapplikation, oder besser, was ist eine unnormale? Und wie unterscheidet das der Webserver? Und vielleicht ist ja der Ansatz ganz falsch und die Antworten hier sollen den Poster anregen über seinen Ansatz nachzudenken?


----------



## tfa (11. Dez 2008)

SlaterB hat gesagt.:
			
		

> > Unendliche Sessiondauer ist wie gesagt schlecht. Wenn die Clients abstürzen oder nicht korrekt geschlossen werden, wirst du die Sessions nie wieder los.
> 
> ..
> 
> ...


Was willst du uns damit sagen? Was ist der Unterschied einer "normalen" Web-Applikation und einer anderen x-belieben Client/Server-Applikation bezgl. Sessionhandling??


----------



## SlaterB (11. Dez 2008)

dass Sessions nicht in Massen auftreten müssen,
dass ein Client-Absturz wie z.B. Rechner-Ausfall gleich den auf denselbem Rechner laufenen Server mit-beendet
usw.

dass die ganze Anwendung allein durch den Einsatz eines dicken Tomcat-Servers schon einen technischen Overhead von 100 MB Speicherbelastung erzeugt und dann 2-3 alte Sessions von je 4kb nicht wirklich relevant sind
usw


----------



## maki (11. Dez 2008)

> Und vielleicht ist ja der Ansatz ganz falsch und die Antworten hier sollen den Poster anregen über seinen Ansatz nachzudenken?


Aus den vorherigen Posts des TS ist zu schliessen, dass er TC für eine nicht Webapplikation "nutzen" will.
Wozu das gut sein soll kann ich nicht nachvollziehen, denke dass er mit einer anderen Lösung besser dran wäre.


----------



## tfa (11. Dez 2008)

SlaterB hat gesagt.:
			
		

> dass Sessions nicht in Massen auftreten müssen,
> dass ein Client-Absturz wie z.B. Rechner-Ausfall gleich den auf denselbem Rechner laufenen Server mit-beendet
> usw.


Keine Ahnung ob das beim OP der Fall ist, aber das klingt nach Frickelkram. Dann kannst du auch globale statische Variablen nehmen. Vernünftig geht anders. 



			
				maki hat gesagt.:
			
		

> Aus den vorherigen Posts des TS ist zu schliessen, dass er TC für eine nicht Webapplikation "nutzen" will.
> Wozu das gut sein soll kann ich nicht nachvollziehen, denke dass er mit einer anderen Lösung besser dran wäre.


Wir machen das auch. 3-Schicht-Anwendung mit (Rich) Swing-Client und Tomcat als Application-Server mit Spring Framework. Funktioniert wunderbar.


----------



## stev.glasow (11. Dez 2008)

Tho82 hat gesagt.:
			
		

> Hallo,
> 
> ich habe in meiner Webapplikation in der web.xml folgendes angegeben:
> 
> ...


glaub du kannst das session timeout auf -1 setzen. dann dauert die unendlich. oder setz es halt auf 1-2 jahre. ändert jetzt am design problem nichts, aber hilft vielleicht kurzfristig weiter


----------



## Guest (11. Dez 2008)

Funktioniert bei mir leider nicht.. dann erfolgt der Timeout nach rund 5 Sekunden. Ist vielleicht Icefaces o.ä. dran schuld?


----------



## tfa (11. Dez 2008)

Dann setz es halt auf MAX_INT Minuten, und vergiss nicht den Server regelmäßig neu zu starten um aufzuräumen.


----------



## FArt (11. Dez 2008)

stevg hat gesagt.:
			
		

> glaub du kannst das session timeout auf -1 setzen. dann dauert die unendlich. oder setz es halt auf 1-2 jahre. ändert jetzt am design problem nichts, aber hilft vielleicht kurzfristig weiter


Das geht bei BEA glaube ich so... -2 hat da auch eine Sonderbedeutung... woanders ist es 0... deshalb mein Hinweis auf die Doku des Webservers... wobei nur "Tomcat" schon wieder für den Popo ist... ;-)

Dennoch bin ich mit solchen Infos sparsam, wenn ich sehe dass der Hund vermutlich woanders begraben ist und die angesprochene "Lösung" leicht zu ergoogeln ist...


----------

