Tomcat Parallel Deployment, disattiva automaticamente le vecchie applicazioni


10

Da un po 'di tempo utilizzo la distribuzione parallela di Tomcat 8 come parte di una configurazione di distribuzione continua senza tempi di inattività.

Quando è stato eseguito il gauntlet di prova, il server CI rinomina automaticamente il file .war nell'applicazione ## {numero-versione} .war e copia la guerra nella cartella / webapp. l'applicazione ## 333 coesisterà perfettamente con l'applicazione ## 332.

L'unico problema che sto riscontrando è che devo disimpegnare manualmente le applicazioni precedenti una volta che tutto il traffico (nuove sessioni) è passato automaticamente a quello nuovo.

Tomcat ha un meccanismo incorporato per dire "hey, quando questo servizio scende a zero sessioni, dovrebbe essere rimosso"? Forse una specie di evento "l'ultima sessione è appena scaduta" a cui posso attingere.

Se qualcun altro ha automatizzato questo tipo di dispiegamento delle applicazioni, mi piacerebbe saperlo. Grazie!

Risposte:


9

Puoi configurare Tomcat per rimuovere le vecchie applicazioni. Devi aggiungere l' undeployOldVersionsattributo Hostall'elemento e impostarlo su true. Dovrai modificare il tuo host in server.xml in qualcosa di simile al seguente:

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

Vedere la documentazione dell'host per i dettagli. In particolare, questo funziona solo quando è abilitata la distribuzione automatica.


Con quale versione di Tomcat stai eseguendo? Ho Tomcat 8.5.6 e questo non funziona. Ho abilitato FarmWarDeployer e le nuove versioni vengono distribuite automaticamente. Tuttavia, dopo aver abilitato undeployOldVersions sul tag Host, i file di guerra (e le distribuzioni) precedenti non vengono eliminati.
Piko,

Qualche progresso su questo con Tomcat 8?
JimmyD,

1
La funzione è implementata per Tomcat 8. Se riscontri problemi durante l'utilizzo di FarmWarDeployer, apri un bug, con i passaggi per la riproduzione, in modo che venga esaminato.
Mark Thomas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.