Wir haben gerade erst begonnen, Hibernate zu verwenden und sind immer noch daran gewöhnt, wie es funktioniert.Wie erzwinge Hibernate, um Speicher freizugeben, sobald die Sitzung geschlossen ist?
Eines der Dinge, die wir gesehen haben, ist, dass, selbst nachdem alle Sitzungen geschlossen wurden und Referenzen den Gültigkeitsbereich verlassen haben, der Ruhezustand die zuvor verwendeten Datenbankwerte weiterhin im Cache zu halten scheint.
Wir haben Code, der aus einer Reihe von Tabellen in mehreren Durchgängen liest. Da die gesamte Speicherkapazität sehr sparsam ist, werden die späteren Arbeitsschritte langsam zu einem Crawling.
Gibt es eine Möglichkeit, Hibernate zu zwingen, seinen Cache zu löschen?
Ein expliziter Aufruf von System.gc() hilft nicht. (Ja, ich weiß, es ist ein Vorschlag)
Zusätzliche Informationen: Wir haben den Second-Level-Cache explizit deaktiviert.
Ich nehme an, Sie verwenden nicht dann Second-Level-Cache des Hibernate? Welche Strategie verwenden Sie für die Sitzungsverwaltung? "Sitzung pro Thread"? –
Wir verwenden Session-per-Thread, und wir haben explizit den Second-Level-Cache deaktiviert – StudioEvoque