Liste aller bestehenden Sessions jboss

Hi

Ich habe eine Applikation in der ich temporär Daten erstelle. Diese Dateien haben den Namen der SessionId des Users.

Nun möchte ich gerne Prüfen, ob die Session noch existiert. Wenn sie nicht mehr existiert, soll die Datei gelöscht werden.

Das ganze hat ich mir in einer Schleife vorgestellt, die alle Sessions durchläuft und auf die Id prüft. Falls nicht vorhanden wird die Datei gelöscht (Die Methode wird dann per Timer ausgeführt)

Nun weiss ich aber leider nicht, wie ich eine Liste aller aktuell laufenden Sessions bekomme (irgendwie muss man da ja ran kommen können…)

Das ist sicherlich nicht die performanteste Lösung die es gibt, aber da dort sowieso nur 5-10 Leute zeitgleich dran Arbeiten, ist dies denk ich nicht das Problem.

Die ganze Applikation läuft auf einem JBoss Server (4.2.3) und gearbeitet wird mit Seam.

Falls ihr einen anderen Lösungsvorschlag habt, bin ich natürlich auch offen dafür

Schonmal vielen Dank im voraus

Grüße

DE

Nun möchte ich gerne Prüfen, ob die Session noch existiert.
Wenn sie nicht mehr existiert, soll die Datei gelöscht werden.
[…]
Falls ihr einen anderen Lösungsvorschlag habt, bin ich
natürlich auch offen dafür

Warum löscht du die Datei denn nicht einfach dann, wenn die Session gelöscht wird?

Hi

erstmal danke für deine Hilfe,

Also du meinst beim Logout sollte ich die Datei löschen. Die Lösung ist mir auch schon durch den Kopf gegangen, nur bleiben dann Daten übrig wenn der Benutzer sich nicht auslogt, und die Session ein Timeout bekommt. Das „aufräumen“ der normalen Daten die eine Session hinterlässt übernimmt dann Seam. Die von der Applikation erstellte Datei bleibt aber unberührt -> Wird nicht mehr benutzt enthält informationen die zu einem vergangen Zeitpunkt interessant waren, jetzt aber nicht mehr -> Datenmüll.

Demnach muss ich auf ein Event warten, was geschmissen wird. Das Problem hierbei ist, dass das Event erst geschmissen wird wenn die Session zerstört wurde. Für das Löschen der Datei brauche ich die ID allerdings zwingend, da die Datei "DateiName-.xml benannt ist.

Daher kam mir die Idee mit der Schleife und dem Timer…

Grüße

DE

Demnach muss ich auf ein Event warten, was geschmissen wird.
Das Problem hierbei ist, dass das Event erst geschmissen wird
wenn die Session zerstört wurde. Für das Löschen der Datei
brauche ich die ID allerdings zwingend, da die Datei
"DateiName-.xml benannt ist.

Das stimmt doch nicht:
http://java.sun.com/javaee/5/docs/api/javax/servlet/…
http://docs.jboss.org/seam/2.0.3.CR1/api/org/jboss/s…
Mit jedem der beiden Listener-Interfaces bekommst du in der sessionDestroyed()-Methode Zugriff auf das HttpSessionEvent und dann weiter mit getSession() auch auf die Session.