Frage

I J2EE App haben, auf dem die Abmeldung nicht ordnungsgemäß umgesetzt wird, ist meine Absicht, alle DB-Ressourcen zu schließen, wenn sich der Benutzer abmeldet. Nicht sicher, ob session.invalidate (); wird wirklich helfen, werde ich es heute versuchen. Bitte Beratung, was das beste Weg wäre, so zu implementieren, logout, dass alle wertvollen Ressourcen freigegeben werden, sobald Benutzer abmeldet.

War es hilfreich?

Lösung

  

meine Absicht ist es, alle DB-Ressourcen zu schließen, wenn sich der Benutzer abmeldet

Das ist schon ein Zeichen für eine schlechte Praxis. Die DB-Ressourcen sollen erworben werden und in der kürzesten möglichen Umfang geschlossen, das heißt innerhalb des gleichen Verfahrensblockes. Sie können nie halten, eine DB-Ressource (Connection, Statement und / oder ResultSet) als statische oder Instanz-Variable erhalten. Es ist Quittung Ressourcenlecks und ernstere Probleme.

Wenn die ursprüngliche Absicht ist, verbindet die Leistung zu verbessern, benötigen Sie einen Verbindungspool einzuführen. Beachten Sie, dass dies keine Entschuldigung ist, die Verbindungen offen zu halten selbst . Nur acquire und schließen sie so schnell wie möglich die gleiche Art und Weise, die Verbindung Pool Umsetzung selbst wird sich Sorgen über die tatsächlich die Verbindung geschlossen wird oder es zurück an den Pool freigibt. Es ist alles völlig transparent. Decent Anwendungsserver Schiffe mit Verbindungs-Pooling-Funktionen im Geschmack von JNDI Datenquellen. Nutzen Sie es. Sobald das erledigt, brauchen Sie sich keine Sorgen machen über alle offenen DB Ressourcen noch die Leistung überhaupt.

Andere Tipps

Bitte beachten Sie als

  1. Wählen Sie Ihre Verbindung und andere Datenbankklassen die DB Ressourcen zu entfernen.
  2. Löschen Sie Session-Session-Objekt verwenden.
  3. Überprüfen Sie, ob das Cookie Sie in der Anwendung und Entfernen erstellt haben erforderlich eine oder alle.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top