Готово ли Tomcat 6 к непрерывной интеграции или как это работает?

Я ищу подсказку, как сделать готовый файл tomcat CI или контейнер контейнера/приложения сервлета, который часто перераспределяется, как это происходит при использовании hudson ci.

Я испытал, что Tomcat 6 не удаляет unappeller webapps, оставляя классы в jvm.

Например, я контролировал tomcat 6 с помощью VisualVM: в начале 2000 классов, при развертывании приложения 3000 после повторного развертывания 4000 и перераспределения 5000 классов и т.д. - приводит к сбоям, утечкам памяти...

Надеюсь, у вас есть намек на tomcat и непрерывную интеграцию или на другие серверы приложений.

Ответ 1

Обновление. Я провел несколько тестов с помощью довольно сложного веб-приложения, используя Spring, Hibernate, GWT, C3P0 и HsqlDB.

Stock Tomcat 6.0.24 отлично работает, если вы используете клиентский компилятор. Он работает на десять повторных развертываний, тогда как серверный компилятор разбивается на четвертый. Я предлагаю вам попробовать флаг -client.

Попытка отладки использования компилятора сервера была бесплодной, так как Eclipse MAT не показал корней GC для загрузчиков классов, и все же они были сохранены. Исправлена ​​ошибка с привязкой к исходной ссылке, PermHeap раздувается и только в VM сервера, как сообщается, исправлена ​​в обновлении 16 Java 6, но мои тесты терпят неудачу с обновлением Java 6 16.


Tomcat был проверен и дважды проверен на наличие таких проблем памяти, и нередко виноваты приложения. Нет, это не означает, что обязательно иметь такую ​​утечку вируса.

Здесь есть две возможности:


Если вы действительно хотите отладить эту проблему и убедитесь, что это ошибка Tomcat, вы можете анализатор памяти Eclipse. У них есть хорошее сообщение в котором объясняется, как отлаживать проблемы PermGen.

Ответ 2

Мне всегда нравится принимать решительные меры, чтобы все было чисто и в полностью воспроизводимом состоянии при запуске

1) kill tomcat

2) удалите его с диска

3) разархивируйте чистую версию

4) перезапишите свои персонализированные измененные настроенные файлы

5) перезапустить tomcat

6) разверните приложение

Ответ 3

Взгляните на Apact Cactus - это среда для серверного тестирования внутри контейнера. Он работает практически с любым контейнером сервлета.