Sie können Anwendungen und deren Module ändern, ohne den Server stoppen und neu starten zu müssen. Diese Art von Änderungen wird als
Implementierung während des Betriebs und dynamisches Neuladen bezeichnet.
Vorbereitende Schritte
Die folgende Anmerkung gilt für die Referenzinformationen zu
XMI-Dateien in diesem Artikel:
Unterstützte Konfigurationen: Bei IBM® Erweiterungs- und Bindungsdateien weicht der Name
der XMI- oder XML-Datei ab, je nachdem, ob Sie eine Java™ EE-Anwendung bzw. ein Java EE-Modul vor oder nach Version 5 verwenden.
Eine IBM Erweiterungs- bzw. Bindungsdatei heißt "ibm-*-ext.xmi" bzw. "ibm-*-bnd.xmi". Das Platzhalterzeichen "*" steht für
den Typ der Erweiterungs- oder Bindungsdatei, z. B. "app", "application", "ejb-jar" oder "web". Es gelten die folgenden Bedingungen:
- Für eine Anwendung oder ein Modul, die bzw. das Java EE vor Version 5 verwendet,
muss die Dateierweiterung ".xmi" sein.
- Für eine Anwendung oder ein Modul, die bzw. das Java EE ab Version 5 verwendet,
muss die Dateierweiterung ".xml" sein. Wenn Dateien mit der Erweiterung ".xmi"
in der Anwendung oder im Modul enthalten sind, werden diese vom Produkt ignoriert.
Ein Modul von Java EE Version 5 oder einer höheren Version kann jedoch in einer Anwendung,
die Dateien einer älteren Java EE-Version als Version 5 enthält, koexistieren.
Die Dateien
ibm-webservices-ext.xmi,
ibm-webservices-bnd.xmi,
ibm-webservicesclient-bnd.xmi,
ibm-webservicesclient-ext.xmi und
ibm-portlet-ext.xmi können die Dateierweiterung ".xmi" weiterhin verwenden.
sptcfg
![[Solaris]](../images/solaris.gif)
Einschränkung: Die
Funktionen für Implementierung während des Betriebs und dynamisches Neuladen werden nicht unterstützt,
wenn das Produkt unter diesen Betriebssystemen ausgeführt wird. Die JAR-Dateien
im zugeordneten Java Development Kit (JDK) werden in den Arbeitsspeicher eingeblendet. Werden diese JAR-Dateien
von den Funktionen für Implementierung während des Betriebs und dynamisches Neuladen aktualisiert,
wenn sie von der Java Virtual Machine verwendet werden, werden sie inkonsistent, was den Absturz des Anwendungsservers
zur Folge hat. Wenn Sie Änderungen an einer Anwendung in diesen Betriebssystemen vornehmen, verwenden Sie nicht die
Funktionen für Implementierung während des Betriebs und dynamisches Neuladen.
Starten Sie stattdessen die Anwendung erneut,
damit die Änderungen wirksam werden.
Dieser Artikel setzt voraus, dass Ihre Anwendungsdateien in einem Server implementiert sind und Sie die Dateien aktualisieren möchten.
Lesen Sie den Artikel Aktualisierung von Unternehmensanwendungsdateien, und stellen Sie fest, ob eine Implementierung während des Betriebs
(Hot Deployment) die richtige Methode für die Aktualisierung Ihrer Anwendungsdateien ist. Andere Methoden sind einfacher. Hot Deployment ist nur für erfahrene Benutzer geeignet.
Verwenden Sie Hot Deployment nicht, wenn Sie Ihre Anwendung exportieren, ein Plug-in auf der Basis der Anwendungskonfiguraiton oder künftig weitere Verwaltungsaktionen für die Anwendung ausführen möchten. Änderungen, die Sie an den Anwendungsdateien über Hot Deployment vornehmen, werden von der Administrationskonsole und den wasadmin-Funktionen für die Anwendungsverwaltung nicht erkannt. Diese Funktionen erkennen nur die Anwendungsdateien, die Verwaltungsprogramme wie die Konsole oder "wsadmin" während der Anwendungsinstallation, der Anwendungsaktualisierung oder über andere Verwaltungsfunktionen
anbieten. Die Funtionen für die Anwendungsverwaltung erkennen keine Dateien, die durch Hot Deployment geändert werden.
Wichtig: Verwenden für die Aktualisierung von Komponenten in einer Produktionsumgebung eingesetzten Deployment-Manager-Zelle
kein Hot-Deployment. Das Hot-Deployment eignet sich für Entwicklungs- und Testumgebungen, aber aufgrund der damit verbundenen
Risiken nicht für Produktionsumgebungen. Mit Hot-Deployment aktualisierte Komponenten können bei einer vollständigen oder Teilresynchronisation gelöscht
werden. Außerdem können bei der Ausführung des Befehls restoreconfig
Änderungen überschrieben werden, die an erweiterten Anwendungsdateien vorgenommen wurden. Außerdem werden solche Komponenten von einer Migration auf eine andere Version von WebSphere Application Server
ausgeschlossen. Wenn Sie einer Unternehmensanwendung neue Komponenten oder Module hinzufügen möchten, müssen Sie die EAR-Datei
der Anwendung mit den gewünschten neuen Komponenten und Modulen assemblieren und anschließend die EAR-Datei
erneut implementieren.
Informationen zu diesem Vorgang
Hot-Deployment ist ein Prozess, bei dem einem aktiven Server neue
Komponenten (z. B. WAR-Dateien, EJB-JAR-Dateien, Enterprise Java Beans, Servlets und JSP-Dateien) hinzugefügt werden, ohne dass der
Anwendungsserver hierbei gestoppt und neu gestartet werden muss.
Dynamisches Neuladen bietet die Möglichkeit, eine bestehende Komponente zu ändern, ohne den Server neu starten zu müssen, damit diese Änderung wirksam wird. Das dynamische Neuladen umfasst folgende Aktionen:
- Änderungen an der Implementierung einer Anwendungskomponente, z. B. eines Servlet
- Änderungen an den Einstellungen der Anwendung, wie z. B. Ändern des Implementierungsdeskriptors für ein Webmodul
Im Gegensatz zu den Änderungen, die an einer implementierten Anwendung vorgenommen werden (siehe
Artikel Unternehmensanwendungsdateien aktualisieren), wird für Änderungen, die durch
Hot Deployment oder dynamisches Neuladen vorgenommen werden, weder die Administrationskonsole noch ein
wsadmin-Scripting-Befehl verwendet. Sie müssen die Anwendungsdateien in dem Server, in dem die Anwendung implementiert ist, direkt
ändern.
Wenn Sie zu aktualisierende Anwendung in einem Server implementiert ist, dessen
Richtlinie für Anwendungsklassenlader auf Einer gesetzt ist, können Sie die Anwendung
möglicherweise nicht dynamisch erneut laden. Nach der Aktualisierung der Anwendung müssen Sie zumindest den Server erneut starten.
Vorgehensweise
- Suchen Sie die erweiterten Anwendungsdateien.
Die Anwendungsdateien sind in dem Verzeichnis
gespeichert, das Sie während der Installation der Anwendung angegeben haben. Sollten Sie kein eigenes Zielverzeichnis
angegeben haben, finden Sie die Dateien im Standardzielverzeichnis Stammverzeichnis_des_Anwendungsservers/installedApps/Zellenname.
Ihre EAR-Datei,
${APP_INSTALL_ROOT}/Zellenname/Anwendungsname.ear, zeigt auf das Zielverzeichnis. Die Variable ${APP_INSTALL_ROOT} ist in der Datei variables.xml für den Knoten
definiert.
Es ist wichtig, die Position der entpackten Anwendungsdateien zu ermitteln, weil ein WebSphere Application Server
bei der Installation von Anwendungen Teile der EAR-Datei in das Dateisystems des Computers extrahiert, der die Anwendung
ausführen soll. Wenn der Server Ihre Anwendung ausführt, sucht er nach diesen entpackten Dateien. Wenn Sie die entpackten Anwendungsdateien nicht finden können, sehen Sie sich in der Datei
deployment.xml für die Anwendung das Attribut binariesURL an. Das Attribut bezeichnet die Position, an der die Laufzeit
nach den Anwendungsdateien sucht.
In den folgenden Informationen zum Hot-Deployment und zum dynamischen Neuladen steht
Stammverzeichnis_der_Anwendung für das Stammverzeichnis der entpackten Anwendungsdateien.
- Suchen Sie die Metadatendateien der Anwendung. Die Metadatendateien enthalten die
Implementierungsdeskriptoren (web.xml, application.xml, ejb-jar.xml usw.), die Bindungsdateien
(ibm-web-bnd.xmi, ibm-app-bnd.xmi usw.) und die Erweiterungsdateien
(ibm-web-ext.xmi, ibm-app-ext.xmi usw.).
XML-Dateien mit den Metadaten für eine Anwendung können aus einem von zwei Verzeichnissen geladen werden. Die
Metadatendateien können aus demselben Verzeichnis wie die Binärdateien der Anwendung
(z. B. Stammverzeichnis_der_Anwendung/META-INF) oder aus der
WebSphere-Konfigurationsbaumstruktur
${STAMMVERZEICHNIS_DER_KONFIGURATION}/cells/Zellenname/applications/Name_der_Anwendungs-EAR/deployments/Anwendungsname/
geladen werden.
Der Wert, der bei der Installation angegebenen Option useMetadataFromBinary steuert, welches Verzeichnis verwendet wird. Ist die Option angegeben, werden
die Metadatendateien aus demselben Verzeichnis wie die Binärdateien der Anwendung geladen. Ist die Option nicht angegeben, werden
die Metadatendateien aus dem Implementierungsordner der Anwendung in der Konfigurationsbaumstruktur geladen.
Wichtig: Mit der in diesem Artikel beschriebenen Prozedur können Sie
useMetadataFromBinaries=true festlegen, eine extrahierte Kopie Ihrer Anwendung über Hot Deployment ändern und die Änderungen zur Laufzeit aktivieren. Änderungen, die Sie an den Anwendungsdateien über Hot Deployment vornehmen, werden von der Konsole und den wasadmin-Funktionen für die Anwendungsverwaltung jedoch nicht erkannt. Diese Funktionen erkennen nur die ursprünglichen Anwendungsdateien und keine Dateien, die über Hot Deployment geändert werden. Verwenden Sie Hot Deployment nicht, wenn Sie Ihre Anwendung exportieren, ein Plug-in auf der Basis der Anwendungskonfiguraiton oder künftig weitere Verwaltungsaktionen für die Anwendung ausführen möchten. Mit Hot Deployment können Sie Anwendungsdateien schnell ändern. Hot Deployment unterstützt jedoch nicht den vollständigen
Verwaltungszyklus einer Anwendung.
In den folgenden Informationen steht
Metadatenstammverzeichnis für das Verzeichnis mit den Metadaten für die angegebene Anwendung oder das
angegebene Modul.
- Erforderlich: Wenn Sie WebSphere Application Server auf einer Gruppe von Maschinen mit WebSphere Application Server Network Deployment
ausführen und eine Anwendung auf einem bestimmten
Knoten ändern, inaktivieren Sie die automatische Synchronisation.
- Klicken Sie in der Navigationsstruktur der Konsole auf .
- Wählen Sie auf der Seite Dateisynchronisationsservice das Kontrollkästchen für Automatische Synchronisation ab, und klicken Sie auf
OK.
Wenn Sie WebSphere Application Server auf einer Gruppe von Maschinen mit
WebSphere Application Server Network Deployment ausführen und eine Datei auf der Platte im erweiterten Anwendungsverzeichnis für einen bestimmten
Knoten ändern, können diese Änderungen bei der nächsten Knotensynchronisation verloren gehen. In der
Umgebung von WebSphere Application Server Network Deployment ist die vom Deployment Manager gespeicherte
Konfiguration die Master-Kopie. Alle Änderungen, die zwischen dieser Master-Kopie und der Kopie
auf einer bestimmten Maschine festgestellt werden, führen dazu, dass die Master-Kopie auf den Knoten
heruntergeladen wird.
- Optional: Überprüfen Sie die Werte, die für
Klassen bei der Aktualisierung von Anwendungsdateien erneut laden und
Abfrageintervall für aktualisierte Dateien auf der Seite mit den Einstellungen für den Klassenlader der Anwendung angegeben sind.
Wenn das erneute Laden von Klassen aktiviert und das Abfrageintervall größer als null (0) ist,
werden die Anwendungsdateien nach dem Aktualisieren der Anwendung erneut geladen.
Für JSP-Dateien (JavaServer Pages) in einem Webmodul gilt Folgendes: Der Web-Container lädt JSP-Dateien nur, wenn die
IBM Erweiterung jspReloadingEnabled in den JSP-Attributen der Datei
ibm-web-ext.xmi den Wert true hat. Sie können die IBM Erweiterung
jspReloadingEnabled auf true setzen, wenn Sie die erweiterten Implementierungsdeskriptoren Ihres Webmoduls
in einem Assembliertool editieren.
- Ändern Sie bei Bedarf die folgenden Komponenten oder Module, oder fügen Sie sie hinzu:
- Damit die Änderungen wirksam werden, müssen Sie eine Anwendung möglicherweise starten, stoppen oder erneut
starten.
Der Artikel Unternehmensanwendungen starten und stoppen beschreibt, wie Sie mit der Administrationskonsole
eine Anwendung starten, stoppen und erneut starten können.
Die Artikel
Anwendungen mit wsadmin-Scripting starten und Anwendungen mit wsadmin-Scripting stoppen enthalten Informationen
zur Verwendung des Scripting-Tools wsadmin.
- Wenn Sie die automatische Synchronisation in Schritt 3
inaktiviert haben, aktivieren Sie die Option jetzt wieder:
- Kehren Sie auf die Seite File
Synchronization Service zurück.
- Wählen Sie Automatische Synchronisation aus.
- Klicken Sie auf OK.
Ergebnisse
Die Anwendungsdateien auf dem Server werden aktualisiert.
Da Sie die Anwendungsdateien auf dem Server direkt bearbeitet haben, können Sie die
Dateien später unter Umständen nicht mehr mit der Administrationskonsole oder wsadmin-Scripting-Befehlen bearbeiten. Wenn Sie beispielsweise versuchen, eine manuell geänderte Anwendung mit der Option Exportieren auf der Konsolseite "Unternehmensanwendungen" zu exportieren,
werden Ihre manuellen Änderungen an einer Anwendung im Verzeichnis installedApps nicht exportiert. Zum Exportieren dieser Änderungen müssen Sie die Anwendungsdateien manuell kopieren und verschieben.