Basisgröße des Pools für gespeicherte Sitzungen
Die Basisgröße des speicherinternen Sitzungspools richtet sich nach der Konfiguration der Sitzungsunterstützung.
- Bei speicherinternen Sitzungen ist der Sitzungszugriff für maximal diese Anzahl von Sitzungen optimiert.
- Bei verteilten Sitzungen (d. h., wenn Sitzungen in einer Datenbank oder in einer anderen Instanz von WebSphere Application Server gespeichert werden) gibt die Poolgröße auch die Cachegröße und die Anzahl der Aktualisierungen der letzten Zugriffszeit an, die im manuellen Aktualisierungsmodus gespeichert werden.
Wenn bei verteilten Sitzungen der Sitzungscache seine Maximalgröße erreicht hat und eine neue Sitzung angefordert wird, entfernt der Sitzungsmanager die älteste verwendete Sitzung aus dem Cache und macht Raum für die neue.
Der allgemeine Speicherbedarf für das Hardwaresystem und die Verwendungsmerkmale der e-business-Site bestimmen den optimalen Wert.
Die Erhöhung der Basisgröße des speicherinternen Sitzungspools kann eine Erhöhung der Heapspeicher-Größen der Java™-Prozesse für die entsprechenden WebSphere Application Server erforderlich machen.
Überlauf in nicht verteilten Sitzungen
Standardmäßig wird die Anzahl der im Speicher verwalteten Sitzungen durch die Basisgröße des speicherinternen Sitzungspools bestimmt. Wenn Sie die Anzahl der im Speicher verwalteten Sitzungen nicht begrenzen und einen Überlauf zulassen möchten, setzen Sie diesen Wert auf true.
Das Zulassen einer uneingeschränkten Anzahl von Sitzungen kann den Systemspeicher auslasten und birgt das Risiko der Systemsabotage. Beispielsweise könnte jemand ein Programm schreiben, das ständig auf Ihre Site zugreift und Sitzungen erstellt, aber alle Cookies oder codierten URLs ignoriert und eine Sitzung niemals über mehrere HTTP-Anforderungen verwendet.
Wenn kein Überlauf ermöglicht wird, gibt der Sitzungsmanager die Sitzung über die Methode "getSession(true)" des Objekts "HttpServletRequest" zurück, auch wenn die Speichergrenze bereits erreicht wurde. Dabei handelt es sich jedoch um eine ungültige Sitzung, die nicht gespeichert wird.Wird versucht, die Sitzung zu verwenden, wird die Ausnahme "java.lang.IllegalStateException" ausgelöst.
Mit der WAS-Erweiterung für HttpSession, com.ibm.websphere.servlet.session.IBMSession, gibt die Methode "isOverflow" den Wert true zurück, wenn die Sitzung eine solche ungültige Sitzung ist. Eine Anwendung kann dies prüfen und entsprechend reagieren.