Assemblierung mit dem Ziel der gemeinsamen Datennutzung

Die Sitzungsverwaltung unterstützt gemäß standardmäßig das Scoping von Sitzungen nach Webmodul gemäß der API-Spezifikation Servlet 2.3 und höher. Nur Servlets im selben Webmodul können auf die Daten zugreifen, die einer bestimmten Sitzung zugeordnet wurden. Sie können jedoch das Objekt "IBMApplicationSession" oder die IBM® Erweiterung für gemeinsam genutzten Sitzungskontext verwenden, um Daten außerhalb des Geltungsbereichs eines Webmoduls gemeinsam nutzen zu können.

Informationen zu diesem Vorgang

Das Objekt "IBMApplicationSession" ist ein übergeordnetes Sitzungsobjekt, das von der Sitzung eines Webmoduls abgerufen werden kann und Sitzungsattribute für alle Webmodule in einer Geschäftswendung freigeben kann. Der Standardbereich der Geschäftsanwendung ist die Unternehmensanwendung. Die Option für gemeinsam genutzten Sitzungskontext erweitert auch den Geltungsbereich der Sitzungsattribute. Wenn die Erweiterung für gemeinsam genutzten Sitzungskontext verwendet wird, gibt es nur ein einziges Sitzungsobjekt für die gesamte Geschäftsanwendung bzw. für die Standardunternehmensanwendung.

Wenn Sie eine gemeinsam genutzte Sitzung für eine Geschäftsanwendung verwenden, müssen die Klassendateien für alle Objekte in der Sitzung in einer isolierten gemeinsam genutzten Bibliothek enthalten und von allen Anwendungen genutzt werden.

Die Methode "IBMApplicationSession" bietet den Vorteil, dass jedes Webmodul sowohl eine eigene Sitzung als auch eine Referenz auf die gemeinsam genutzte Sitzung verwalten kann.

Wenn Sie eine Anwendung von einer früheren Version des Produkts migrieren, erfordert die Methode "IBMApplicationSession" eine Änderung der Anwendungslogik der Anwendung.

Einschränkung: Zur Verwendung einer gemeinsam genutzten Sitzung müssen Sie alle Anwendung in einer Geschäftsanwendung auf einem bestimmten Server installieren. Sie Unternehmensanwendung kann nicht auf mehrere Server aufgeteilt werden. Sie können diese Option beispielsweise nicht verwenden, wenn eine Unternehmensanwendung in "BLA1" auf einem Server und eine zweite Unternehmensanwendung in "BLA1" auf einem anderen Server installiert ist. Bei solchen verteilten Installationen können Anwendungen unter Umständen mit verteilten Sitzungen die Sitzungsattribute über alle Webmodule hinweg gemeinsam benutzen. Bei parallelem Zugriff auf eine Sitzung in verschiedenen Webmodulen geht jedoch die Datenintegrität verloren. Bei dieser Methode wird außerdem die Verwendung bestimmter Features für die Sitzungsverwaltung, z. B. von TIME_BASED_WRITES, stark eingeschränkt.

Bei Unternehmensanwendungen, für die die Option für gemeinsam genutzten Sitzungskontext aktiviert ist, wird die Konfiguration der Sitzungsverwaltung für das Webmodul innerhalb der Unternehmensanwendung ignoriert. Wenn die Sitzungsverwaltung auf Ebene der Unternehmensanwendung außer Kraft gesetzt wird, wird die Konfiguration der Sitzungsverwaltung für die Unternehmensanwendung verwendet. Andernfalls findet die Konfiguration der Sitzungsverwaltung für den Web-Container Anwendung. Wenn Sie mehrere Unternehmensanwendungen in einer Geschäftsanwendung verwenden, muss die Sitzungsverwaltungskonfiguration in allen Anwendungen und Webmodulen in dieser Geschäftsanwendung identisch sein.

Für Sitzungsereignisse werden HttpSession-Listener aufgerufen, die in allen Webmodulen in der Geschäftsanwendung bzw. Unternehmensanwendung definiert sind. Die Reihenfolge, in der die Listener aufgerufen werden, ist nicht garantiert.

Gehen Sie wie folgt vor, um die gemeinsame Nutzung von Sitzungsdaten in der gesamten Geschäftsanwendung zu konfigurieren:

Vorgehensweise

  1. Gehen Sie wie folgt vor, um die gemeinsame Nutzung von Sitzungsdaten über das Objekt "IBMApplicationSession" im Anwendungscode zu aktivieren.
    1. Rufen Sie das Sitzungsobjekt ab.
      HttpSession session = request.getSession();
    2. Setzen Sie dieses Objekt in ein IBMSession-Objekt um, und rufen Sie die Methode "getIBMApplicationSession" auf.
      IBMApplicationSession appSession = ((IBMSession)session).getIBMApplicationSession();
    3. Verwende Sie "appSession" wie ein normales Sitzungsobjekt.
  2. Gehen Sie wie folgt vor, um die gemeinsame Nutzung von Sitzungsdaten über die Erweiterung für gemeinsam genutzten Sitzungskontext zu aktivieren:
    1. Starten Sie ein Assembliertool.
    2. Klicken Sie im Assembliertool mit der rechten Maustaste auf die Anwendung (EAR-Datei), die Sie freigeben möchten, und klicken Sie dann auf Öffnen mit > Editor für Implementierungsdeskriptoren.
    3. Wählen Sie im Editor für den Anwendungsimplementierungsdeskriptor des Assembliertools Gemeinsam genutzter Sitzungskontext unter 'WebSphere-Erweiterungen' aus. Vergewissern Sie sich, dass die Klassendefinition von Attributen, die in die Sitzung aufgenommen werden, für alle Webmodule der Unternehmensanwendung verfügbar sind. Der gemeinsame Sitzungskontext entspricht nicht vollständig den Anforderungen der Spezifikationen.
    4. Speichern Sie die EAR-Datei der Anwendung. Bestätigen Sie nach dem Schließen des Editors für den Implementierungsdeskriptor der Anwendung im Assembliertool, dass Sie die an der Anwendung vorgenommenen Änderungen speichern möchten.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_sharing_data
Dateiname:tprs_sharing_data.html