HTTP-Sitzungsmanager mit WebSphere Application Server konfigurieren

WebSphere Application Server stellt zwar Funktionen für die Sitzungsverwaltung bereit, aber die Leistung nimmt mit zunehmender Anzahl an Anforderungen ab. Im Lieferumfang von WebSphere eXtreme Scale ist eine Sitzungsmanagementimplementierung enthalten, die Sitzungsreplikation, hohe Verfügbarkeit, eine bessere Skalierbarkeit und stabilere Konfigurationsoptionen bietet.

Vorbereitende Schritte

Informationen zu diesem Vorgang

Der HTTP-Sitzungsmanager von WebSphere eXtreme Scale unterstützt integrierte und ferne Server für das Caching.
  • Szenario mit integriertem Sitzungsmanager

    Im Szenario mit dem integrierten Sitzungsmanager werden die WebSphere eXtreme Scale-Server in denselben Prozessen wie die Servlets ausgeführt. Der Sitzungsmanager kann direkt mit der lokalen ObjectGrid-Instanz kommunizieren, wodurch teure Verzögerungen bei der Netzübertragung vermieden werden.

    Wenn Sie WebSphere Application Server verwenden, speichern Sie die bereitgestellten Dateien WXS-Ausgangsverzeichnis/session/samples/objectGrid.xml und WXS-Ausgangsverzeichnis/session/samples/objectGridDeployment.xml in den Verzeichnissen META-INF Ihrer WAR-Dateien (Webarchiv). eXtreme Scale erkennt diese Dateien beim Anwendungsstart automatisch und startet automatisch die eXtreme-Scale-Container in demselben Prozess wie den Sitzungsmanager.

    Sie können die Datei objectGridDeployment.xml ändern, abhängig davon, ob Sie synchrone oder asynchrone Replikation verwenden möchten und wie viele Replikate konfiguriert werden sollen.

  • Szenario mit fernen Servern

    Im Szenario mit fernen Servern werden die Container-Server in anderen Prozessen als die Servlets ausgeführt. Der Sitzungsmanager kommuniziert mit einem fernen Container-Server. Wenn Sie einen fernen, über ein Netz verbundenen Container-Server verwenden möchten, muss der Sitzungsmanager mit den Hostnamen und Portnummern der Katalogservicedomäne konfiguriert werden. Der Sitzungsmanager verwendet anschließend eine eXtreme-Scale-Clientverbindung, um mit dem Katalogserver und den Container-Servern zu kommunizieren.

    Wenn die Container-Server in unabhängigen, eigenständigen Prozessen gestartet werden, starten Sie die eXtreme-Scale-Container mit den Dateien objectGridStandAlone.xml und objectGridDeploymentStandAlone.xml, die im Verzeichnis "samples" des Sitzungsmanagers bereitgestellt werden.

Vorgehensweise

  1. Fügen Sie Ihre Anwendung so zusammen, dass sie den Sitzungsmanager verwenden kann. Wenn Sie den Sitzungsmanager verwenden möchten, müssen Sie die entsprechenden Filterdeklarationen den Webimplementierungsdeskriptoren für die Anwendung hinzufügen. Außerdem werden die Konfigurationsparameter des Sitzungsmanagers in Form von Initialisierungsparametern für den Servlet-Kontext in den Implementierungsdeskriptoren an den Sitzungsmanager übergeben. Es gibt mehrere Methoden, mit denen Sie diese Informationen in Ihre Anwendung einführen können:
    • Automatisches Verbinden mit WebSphere Application Server

      Sie können die Verwendung des HTTP-Sitzungsmanager von WebSphere eXtreme Scale beim Installieren Ihrer Anwendung konfigurieren. Die Anwendungs- bzw. Serverkonfiguration kann auch geändert werden, damit der HTTP-Sitzungsmanager von WebSphere eXtreme Scale verwendet wird. Weitere Informationen finden Sie unter Anwendungen für die HTTP-Sitzungsverwaltung in WebSphere Application Server.

    • Automatisches Verinden der Anwendung mit angepassten Eigenschaften

      Sie müssen Ihre Anwendungen nicht manuell zusammenfügen, wenn die Anwendung in WebSphere Application Server oder WebSphere Application Server Network Deployment ausgeführt wird.

      Fügen Sie einer Zelle oder einem Server eine angepasste Eigenschaft hinzu, um die Datei splicer.properties für alle Webanwendungen in diesem Geltungsbereich zu definieren. Gehen Sie zum Konfigurieren der angepassten Eigenschaft wie folgt vor:

      1. Navigieren Sie in der Administrationskonsole von WebSphere Application Server zum dem Pfad, in dem Sie die angepasste Eigenschaft definieren möchten, um die Position der Datei splicer.properties anzugeben.
        • Wenn Sie die angepasste Eigenschaft für alle Anwendungen oder nur für eine bestimmte Anwendung konfigurieren möchten, klicken Sie auf Systemverwaltung > Zelle > Angepasste Eigenschaften.
        • Wenn Sie die angepasste Eigenschaft für alle Anwendungen in einem bestimmten Anwendungsserver konfigurieren möchten, klicken Sie auf Anwendungsserver > <Servername> > Verwaltung > Angepasste Eigenschaften. Der Eigenschaftsname ist com.ibm.websphere.xs.sessionFilterProps und der Eigenschaftswert ist die erforderliche Position der Datei splicer.properties für Ihre Anwendungen. Ein Beispielpfad für die Position der Datei ist /opt/splicer.properties.
      2. Fügen Sie die angepasste Eigenschaft com.ibm.websphere.xs.sessionFilterProps hinzu. Diese angepasste Eigenschaft gibt die Position der zu bearbeitenden Datei splicer.properties an. Die Datei ist im Deployment Manager enthalten. Wenn Sie die Datei splicer.properties für eine bestimmte Anwendung mit einer angepassten Eigenschaft auf Zellenebene konfigurieren möchten, geben Sie als Namen der angepassten Eigenschaft <Anwendungsname>,com.ibm.websphere.xs.sessionFilterProps an, wobei Anwendungsname für den Namen der Anwendung steht, auf die Sie die angepasste Eigenschaft anwenden möchten.
      Wichtig: Stellen Sie sicher, dass die aktualisierte Datei splicer.properties auf allen Knoten, die einen Anwendungsserver enthalten, in dem die Anwendungen gehostet werden, die für die Sitzungsreplikation verbunden werden, in demselben Pfad enthalten ist.

      Die einzigen gültigen Geltungsbereiche sind "Zelle", "Server" und "Anwendung" und nur verfügbar, wenn mit einem Deployment Manager gearbeitet wird. Wenn Sie einen anderen Geltungsbereich benötigen, müssen Sie Ihre Webanwendungen manuell verbinden.

      Hinweis: Die Option für automatisches Verbinden funktioniert nur, wenn alle Knoten, auf denen die Anwendung ausgeführt wird, die Datei splicer.properties in demselben Pfad enthalten. Für heterogene Umgebungen, die Windows- und UNIX-Knoten enthalten, ist diese Option nicht möglich, und Sie müssen die Anwendung manuell zusammenfügen.
    • Anwendung mit dem Script addObjectGridFilter verbinden
      Verwenden Sie ein Befehlszeilenscript, das mit eXtreme Scale bereitgestellt wird, um eine Anwendung mit Filterdeklarationen und Konfigurationen in Form von Initialisierungsparametern für den Servlet-Kontext zusammenzufügen. Bei einer Implementierung mit WebSphere Application Server befindet sich dieses Script unter <was_home>/optionalLibraries/ObjectGrid/session/bin/addObjectGridFilter.bat/sh. Bei einer eigenständigen Implementierung befindet sich das Script unter WXS_HOME/ObjectGrid/session/bin/addObjectGridFilter.sh/bat. Das Script oddObjectGridFilter akzeptiert zwei Parameter:
      • Anwendung - Der absolute Pfad zu der zu verbindenden EAR-Datei.
      • Absoluter Pfad zur Datei "splicer.properties", die verschiedene Konfigurationseigenschaften enthält.

      Das Syntaxformat dieses Scripts ist wie folgt:

      [Windows]
      addObjectGridFilter.bat [EAR-Datei] [splicer-properties-Datei]
      [Unix]
      addObjectGridFilter.sh [EAR-Datei] [splicer.properties-Datei]
      [Unix] Beispiel mit eXtreme Scale in WebSphere Application Server unter UNIX:
      1. cd WXS-Ausgangsverzeichnis/optionalLibraries/ObjectGrid/session/bin
      2. addObjectGridFilter.sh /tmp/mySessionTest.ear WAS-Stammverzeichnis/optionalLibraries/ObjectGrid/session/samples/splicer.properties

      [Unix] Beispiel mit eXtreme Scale in einem eigenständigen Verzeichnis unter UNIX:

      1. cd WAS-Stammverzeichnis/session/bin
      2. addObjectGridFilter.sh /tmp/mySessionTest.ear WAS-Stammverzeichnis/session/samples/splicer.properties
      Der Servletfilter, der verbunden wird, verwaltet Standardkonfigurationswerte. Sie können diese Standardwerte mit Konfigurationsoptionen überschreiben, die Sie in der Eigenschaftendatei im zweiten Argument angeben. Eine Liste der Parameter, die Sie verwenden können, finden Sie im Abschnitt Initialisierungsparameter für den Servlet-Kontext.

      Sie können die Beispieldatei splicer.properties ändern und verwenden, die mit der Installation von eXtreme Scale bereitgestellt wird. Sie können auch das Script "addObjectGridServlets" verwenden, das den Sitzungsmanager einfügt, indem Sie jedes Servlet erweitern. Das empfohlene Script ist jedoch das Script "addObjectGridFilter".

    • Anwendung manuell mit dem Ant-Build-Script verbinden
      Im Lieferumfang von WebSphere eXtreme Scale ist eine Datei build.xml enthalten, das von Apache Ant verwendet werden kann, und im Ordner WAS-Stammverzeichnis/bin einer Installation von WebSphere Application Server enthalten ist. Sie können die Datei build.xml bearbeiten, um die Konfigurationseigenschaften des Sitzungsmanagers zu ändern. Die Konfigurationseigenschaften sind identisch mit den Eigenschaftsnamen in der Datei splicer.properties. Sie bearbeiten die Datei build.xml und rufen dann den Ant-Prozess mit dem folgenden Befehl auf:
      • [Unix] ant.sh, ws_ant.sh
      • [Windows] ant.bat, ws_ant.bat
      (UNIX) bzw. (Windows).
    • Webdeskriptor manuell aktualisieren

      Editieren Sie die mit der Webanwendung gepackte Datei web.xml, um die Filterdeklaration, die Servlet-Zuordnung und die Initialisierungsparameter für den Servlet-Kontext zu integrieren. Verwenden Sie diese Methode nicht, weil sie fehleranfällig ist.

    Eine Liste der Parameter, die Sie verwenden können, finden Sie im Abschnitt Initialisierungsparameter für den Servlet-Kontext.
  2. Implementieren Sie die Anwendung. Führen Sie dazu die Schritte aus, die Sie gewöhnlich für einen Server oder Cluster verwenden. Nach der Implementierung der Anwendung können Sie die Anwendung starten.
  3. Greifen Sie auf die Anwendung zu. Sie können jetzt auf die Anwendung zugreifen, die mit dem Sitzungsmanager und mit WebSphere eXtreme Scale interagiert.

Nächste Schritte

Sie können die meisten Konfigurationsparameter des Sitzungsmanagers ändern, wenn Sie Ihre Anwendung für die Verwendung des Sitzungsmanagers instrumentieren. Zu diesen Attributen gehören die synchrone oder asynchrone Replikation, die Größe der speicherinternen Sitzungstabelle usw. Abgesehen von den Attributen, die während der Instrumentierung der Anwendung geändert werden können, sind die einzigen Attribute, die Sie nach der Anwendungsimplementierung ändern können, die Attribute, die sich auf die WebSphere eXtreme Scale-Serverclustertopologie beziehen, und die Art und Weise, in der Clients (Sitzungsmanager) eine Verbindung zu diesen Servern herstellen.
Verhalten bei einem fernen Szenario: Wenn das gesamte Datengrid, in dem die Anwendungssitzungsdaten gehostet werden, über den Web-Container-Client nicht verfügbar ist, verwendet der Client stattdessen den Basis-Web-Container in WebSphere Application Server für die Sitzungsverwaltung. Das Datengrid kann in den folgenden Szenarien nicht erreichbar sein:
  • Es besteht ein Netzproblem zwischen dem Web-Container und den fernen Container-Servern.
  • Die fernen Container-Server-Prozesse wurden gestoppt.
Die Anzahl der im Speicher verwalteten Sitzungsreferenzen, die mit dem Parameter sessionTableSize angegeben wird, wird auch auch dann beibehalten, wenn die Sitzungen im Basis-Web-Container gespeichert werden. Die Sitzungen, die am längsten nicht mehr verwendet wurden, werden aus dem Sitzungscache des Web-Containers entfernt, wenn der Wert von sessionTableSize überschritten wird. Wenn das ferne Datengrid wieder verfügbar ist, können Sitzungen, die aus dem Web-Container-Cache entfernt wurden, Daten aus dem fernen Datengrid abrufen und die Daten in eine neue Sitzung laden. Wenn das gesamte ferne Datengrid nicht verfügbar ist und die Sitzung aus dem Sitzungscache entfernt wird, gehen die Sitzungsdaten des Benutzers verloren. Aufgrund dieses Problems sollten Sie nicht das gesamte Produktionsdatengrid beenden, wenn das System unter Last ausgeführt wird.