Bei der parallelen Bereitstellung von Tomcat wird die Bereitstellung alter Anwendungen automatisch aufgehoben

10

Ich verwende die parallele Bereitstellung von Tomcat 8 bereits seit einiger Zeit als Teil eines kontinuierlichen Bereitstellungs-Setups ohne Ausfallzeiten.

Wenn der Testhandschuh ausgeführt wurde, benennt der CI-Server die WAR-Datei automatisch in Anwendung ## {Versionsnummer} .war um und kopiert den War in den Ordner / webapp. Anwendung ## 333 wird gut mit Anwendung ## 332 koexistieren.

Das einzige Problem, auf das ich stoße, ist, dass ich die Bereitstellung älterer Anwendungen manuell aufheben muss, sobald der gesamte Datenverkehr (neue Sitzungen) automatisch auf die neue übertragen wurde.

Hat Tomcat einen eingebauten Mechanismus, um zu sagen: "Hey, wenn dieser Dienst auf null Sitzungen reduziert wird, sollte er entfernt werden"? Vielleicht eine Art "Die letzte Sitzung ist gerade abgelaufen" -Ereignis, auf das ich zugreifen kann.

Wenn jemand diese Art der Bereitstellung von Anwendungen automatisiert hat, würde ich gerne davon hören. Vielen Dank!

Martin Cron
quelle

Antworten:

9

Sie können Tomcat so konfigurieren, dass die alten Anwendungen entfernt werden. Sie müssen das undeployOldVersionsAttribut dem HostElement hinzufügen und auf festlegen true. Sie müssen Ihren Host in server.xml wie folgt ändern:

<Host undeployOldVersions="true" ...>
   ...
</Host>

Weitere Informationen finden Sie in der Host-Dokumentation . Dies funktioniert insbesondere nur, wenn die automatische Bereitstellung aktiviert ist.

Mark Thomas
quelle
Unter welcher Version von Tomcat laufen Sie? Ich habe Tomcat 8.5.6 und das funktioniert nicht. Ich habe FarmWarDeployer aktiviert und neue Versionen werden automatisch bereitgestellt. Nach dem Aktivieren von undeployOldVersions auf dem Host-Tag werden die älteren War-Dateien (und Bereitstellungen) jedoch nicht gelöscht.
Piko
Irgendwelche Fortschritte mit Tomcat 8?
JimmyD
1
Die Funktion ist für Tomcat 8 implementiert. Wenn bei der Verwendung von FarmWarDeployer Probleme auftreten, öffnen Sie einen Fehler mit Schritten zur Reproduktion, damit er angezeigt wird.
Mark Thomas