Auf das Mehrzeilenschema umschalten
Die Mehrzeilenschemakonfiguration unterstützt die Speicherung eines uneingeschränkten Datenvolumens, das nur durch die Datenbankkapazitäten einer Anwendung beschränkt wird. Die Anwendung kann einzelne Felder anstelle des gesamten Datensatzes lesen, wodurch sich die Leistung aufgrund der Vermeidung unnötiger Serialisierungen von Java-Objekten verbessern kann. Konfigurieren Sie die Funktion für Sitzungsverwaltung unter Verwendung der Mehrzeilenschemakonfiguration so, dass jedes Attribut in einem Sitzungsobjekt in einer eigenen Zeile in der Datenbank gespeichert wird.
Informationen zu diesem Vorgang
Die einzige praktische Begrenzung, die bleibt, ist die Größe des Sitzungsattributobjekts. Das Mehrzeilenschema hat in bestimmten Szenarien Vorteile hinsichtlich der Leistung, z. B. wenn große Datenmengen in der Sitzung gespeichert werden, während der Verarbeitung einer HTTP-Anforderung durch ein bestimmtes Servlet jedoch nur auf kleine Mengen ausdrücklich zugegriffen wird. In einem solchen Szenario erzielen Sie eine bessere Leistung, wenn Sie eine nicht erforderliche Serialisierung von Java-Objekten vermeiden.
Abgesehen davon, dass Sie größere Sitzungssätze zur Verfügung haben, kann das Mehrzeilenschema sich auch positiv auf die Leistung auswirken. Wenn Sie jedoch den Wechsel vom Einzeilenschema zum Mehrzeilenschema durchführen möchten, müssen Sie, wie in der folgenden Tabelle dargestellt, einige Schritte ausführen:
Standardmäßig wird eine Session einer Zeile in der Datenbanktabelle zugeordnet, in der die Sitzungen gespeichert werden. Bei dieser Konfiguration gibt es feste Grenzwerte für die Anzahl benutzerdefinierter anwendungsspezifischer Daten, auf die WebSphere Application Server zugreifen kann.
Es empfiehlt sich, ein Einzeilenschema für eine Datenbank und ein Mehrzeilenschema für eine andere Datenbank zu konfigurieren, während Sie prüfen, welche Option für Ihre Anwendung geeignet ist. Nehmen Sie die Konfiguration im Code vor, indem Sie die verwendete Datenquelle wechseln. Überwachen Sie anschließend die Leistung.
Programmieraspekt | Anwendungsszenario |
---|---|
Gründe für die Verwendung des Einzeilenschemas |
|
Gründe gegen die Verwendung des Einzeilenschemas | Begrenzung von 2 MB gespeicherter Daten pro Sitzung. |
Gründe für die Verwendung des Mehrzeilenschemas |
|
Gründe gegen die Verwendung des Mehrzeilenschemas | Falls Sie mit kleinen Datenmengen arbeiten, möchten Sie den zusätzlichen Systemaufwand, der für mehrzeilige Lesevorgänge erforderlich ist, wahrscheinlich nicht in Kauf nehmen, wenn Sie alles in einer Zeile speichern können. |
Bei der Verwendung des Mehrzeilenschemas können Sie Ihre eigenen Anwendungsdatenobjekte so konzipieren, dass sie keine wechselseitigen Referenzen aufweisen, um Kreisreferenzen zu vermeiden. Nehmen Sie z. B. an, dass Sie die zwei Objekte A und B mit der Methode HttpSession.put(..) in der Sitzung speichern. Nehmen Sie weiter an, dass A eine Referenz auf B enthält. Bei Verwendung des Mehrzeilenschemas ist das Objektdiagramm zwischen A und B, wenn die Objekte A und B später abgerufen werden, anders als im Status "Gespeichert", da Objekte in verschiedenen Zeilen der Datenbank gespeichert werden. A und B verhalten sich wie zwei voneinander unabhängige Objekte.