finalize() aufrufen sobald die Session ausläuft

recco

Grünschnabel
Hallo Community,

Ich bin derzeit dabei eine fertige WebAnwendung (http://www.konakart.com) ein wenig zu modifizieren. Diese Anwendung nutzt das Struts Framework um das MVC prinzip zu implementieren, ich arbeite ausschließlich im "Model" Bereich.

Für jeden user wird eine sogenannte Engine (KKEng), die die hauptfunktionen dieser anwendung bereitstellt, erzeugt und als Attribut in die Session geschrieben. diese Engine-Klasse liegt als Sourcecode vor, ich habe in ihr aber weder das HttpServletRequest-object noch ein Session-object zur Verfügung.

Während der Lebensdauer einer Instanz dieser "Engine" sammle ich alle möglichen Informationen, die ich als Datenelemente speichere. Nun möchte ich sobald die Session ausläuft diese Daten in einer Datenbank verewigen, habe allerdings probleme damit herauszufinden wann genau dieser Zeitpunkt ist.

Zuerst dachte ich daran finalize() aufzurufen, da ja jedes Objeckt zwangsweise irgendwann vom Garbage Collector weggeräumt wird. Diese Engine jedoch frühestens sobald die Session ausläuft. Mein Problem: Die Session läuft aus, das Engine-objekt wird gelöscht, aber finalize wird niemals aufgerufen.

Als Servlet Container nutze ich den Apache Tomcat 6.0.18.


Meine Frage: Ist dies ein bekanntes Verhalten, dass finalize vom Tomcat nicht aufgerufen wird, oder liegt das eher an der Webanwendung die ich modifiziere? hat vieleicht jemand eine Idee wie ich eine Methode automatisch aufrufen lassen kann wenn die session ausläuft ohne das HttpServletRequest Objekt zur Verfügung zu haben?

Ich bin für alle Konstruktiven Antworten dankbar.

mfg recco
 
Zurück