Geplante Invalidierung
Anstatt sich auf den periodischen Annullierungszeitgeber zu verlassen, dessen Ausführungsintervall auf dem Parameter für das Sitzungszeitlimit basiert, können Sie für die Sitzungsverwaltung bestimmte Zeiten definieren, um in einer verteilten Umgebung nach annullierten Sitzungen zu suchen.
Dieses Feature bringt für verteilte Sitzungen die folgenden Vorteile:
- Sie können die Suche nach ungültig gemachten Sitzungen für Zeiten mit geringer Anwendungsserveraktivität einplanen und so eine Konkurrenzsituation zwischen der Suche in einer Datenbank oder einer anderen WAS-Instanz und den Lese- und Schreibvorgängen für die Bedienung von HTTP-Sitzungsanforderungen vermeiden.
- Bei Ausführung im Schreibmodus "Ende der Servicemethode" kommt es zu erheblich weniger externen Schreiboperationen, weil der letzte Zugriff der Sitzung nicht bei jeder HTTP-Anforderung geschrieben werden muss. (Die Optionen für manuelle Aktualisierung und zeitbasiertes Schreiben minimieren bereits das Schreiben beim letzten Zugriff.)
- Der Sitzungsmanager macht Sitzungen nur zur geplanten Zeit ungültig. Deshalb stehen einer Anwendung auf Anforderung Sitzungen zur Verfügung, bis die Sitzung ungültig gemacht wird. Überlegungen zur Nutzung:
- Wenn die geplante Gültigkeitsdauer konfiguriert ist, werden HttpSession-Zeitlimits nicht strikt angewendet. Stattdessen wird die Annullierungsverarbeitung zu den konfigurierten Annullierungszeiten ausgeführt.
- Die HttpSessionBindingListener-Verarbeitung erfolgt zu den konfigurierten Annullierungszeiten, solange nicht explizit die Methode HttpSession.invalidate aufgerufen wird.
- Die Methode HttpSession.invalidate macht die Sitzung sofort ungültig, und zwar sowohl im Sitzungscache als auch im externen Speicher.
- Der Thread für periodische Annullierung wird weiterhin für die geplanten Annullierungen ausgeführt. Stimmt die aktuelle Uhrzeit (Stunde) nicht mit einer der konfigurierten Uhrzeiten überein, werden Sitzungen, die das Annullierungsintervall überschritten haben, aus dem Cache, jedoch nicht aus dem externen Speicher entfernt. Bei einer weiteren Anforderung dieser Sitzung wird die Sitzung in den Cache zurückgestellt.
- Wenn der Thread für periodische Annullierung zu einer der konfigurierten Uhrzeiten ausgeführt wird, werden alle Sitzungen, die das Annullierungsintervall überschritten haben, durch das Entfernen aus dem Cache und aus dem externen Speicher annulliert.
- Der Thread für periodische Annullierung kann innerhalb einer Stunde mehrfach ausgeführt werden. Die Ausführung muss nicht zur vollen Stunde stattfinden.
- Wenn Sie das Intervall für den Thread für periodische Annullierung mit der angepassten Eigenschaft "HttpSessionReaperPollInterval" angeben, verwenden Sie keinen Wert, der über 3600 Sekunden (1 Stunde) liegt, damit die Annullierungsverarbeitung jede Stunde mindestens einmal ausgeführt wird.