Tomcat Parallel Deployment, автоматично нерозгортаючи старі програми


10

Я використовую паралельне розгортання Tomcat 8 як частину безперервного налаштування безперервного розгортання з нульовим простоєм.

Після запуску тестової рукавиці сервер CI автоматично перейменовує .war файл у додаток №# {version-номер} .war та копіює війну в папку / webapp. додаток №# 333 чудово буде співіснувати з додатком №# 332.

Єдиною проблемою, з якою я стикаюся, є те, що мені доведеться вручну розблокувати старіші програми, як тільки весь трафік (нові сеанси) автоматично перейде на новий.

Чи має Tomcat якийсь вбудований механізм для того, щоб сказати "ей, коли ця послуга перейде на нульову сесію, її слід видалити"? Можливо якась подія "нещодавно закінчився останній сеанс", до якої я можу скористатися.

Якщо хтось ще автоматизував подібний додаток, я хотів би почути про це. Дякую!

Відповіді:


9

Ви можете налаштувати Tomcat для видалення старих програм. Потрібно додати undeployOldVersionsатрибут до Hostелемента та встановити його true. Вам потрібно буде змінити свій хост у server.xml на щось подібне:

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

Докладніше див. Документацію на хост . Зокрема, це працює лише тоді, коли ввімкнено автоматичне розгортання.


Під якою версією Tomcat ви працюєте? У мене Tomcat 8.5.6, і це не працює. Я ввімкнув FarmWarDeployer, і нові випуски автоматично розгортаються. Однак після ввімкнення undeployOldVersions у тезі Host старі файли війни (та розгортання) не видаляються.
Піко

Якийсь прогрес у цьому щодо Tomcat 8?
JimmyD

1
Ця функція реалізована для Tomcat 8. Якщо у вас виникають проблеми під час використання FarmWarDeployer, тоді відкрийте помилку з кроками для відтворення, щоб її переглянути.
Марк Томас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.