2010-03-12 1 views
13

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

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

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

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

+0

Я бы * хотел * видеть ответы на это. У нас были аналогичные проблемы с ошибками памяти PermGen и т. Д. С нашими автозаменами CI в Tomcat 6. – Pete

+0

Запуск последней версии tomcat? У него больше сообщений об ошибках относительно того, что неправильно очищено при перезагрузке контекста. Если вы используете mysql, получите соединитель/j 5.1.12, поскольку он исправляет утечку потока, что вызывает огромные утечки перезагрузки в tomcat. – nos

+0

Мы используем небольшие приложения без mysql или соединителей. Небольшие примеры приложений с весны, простые приветствия jsp aps и т. Д. – jpse

ответ

7

Update: Я провел некоторые тесты с умеренно сложной веб-приложения с использованием Spring, Hibernate, GWT, C3P0 и HSQLDB.

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

Попытка отладки использования серверного компилятора была бесплодной, так как Eclipse MAT не показал корней GC для загрузчиков классов, и все же они были сохранены. Часто ссылается ошибка, PermHeap bloat in and only in server VM, как сообщается, зафиксировано в Java 6 Update 16, но мои тесты не с Java 6 Update 16.


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

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


Если вы действительно хотите, чтобы отладить эту проблему, и убедитесь, что это вина Tomcat, вы можете вам Eclipse memory analyser. У них хороший blog post explaining how to debug PermGen problems.

+0

Привет, вы сказали, что GCC сломался ... Что вы точно это понимаете. Есть ли какой-нибудь тест? В любом случае, действительно, приложение часто вызывает проблемы, поэтому мы используем примеры приложений, как они используют миллионы раз. Новая функция обнаружения утечки, к сожалению, не решает проблему, но является хорошим шагом в правильном направлении и помогает понять, что происходит ... – jpse

+0

Да, ссылка GCC довольно непрозрачна, извините. Я хочу сказать, что мы, как разработчики, склонны обвинять другие компоненты - сервер приложений, ОС, космические лучи :-) для проблем, которые мы не можем объяснить. Я делал это слишком много раз и почти всегда обнаруживал ошибку в своем коде. –

+0

@ Robert благодарит вас за ссылку затмения – jpse

1

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

1) убить кота

2) удалить с диска

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

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

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

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

+0

Спасибо, мы используем свежий чистый кота для тестов, не применяя приемы, это не совсем точно ... – jpse

+0

Хотя это «самый безопасный» подход, он также будет намного более громоздким, особенно если у вас есть несколько серверов Tomcat udpate от CI (dev, alpha, preproduction и т. д.). Почему вы считали, что эти радикальные меры необходимы (например, Tomcat переустанавливают)? – sleske

-1

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

+0

Хотя Apact Кактус интересен, я не вижу, как это относится к вопросу, а именно о проблемах, вызванных частыми повторными развертываниями. – sleske

 Смежные вопросы

  • Нет связанных вопросов^_^