Tomcat Parallel Deployment, автоматически удаляет старые приложения

10

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

Когда тестовая рукавица была запущена, сервер CI автоматически переименовывает файл .war в приложение ## {version-number} .war и копирует 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 вы сталкиваетесь с проблемами, откройте ошибку с инструкциями по воспроизведению, чтобы ее можно было просмотреть.
Марк Томас