Сервер приложений Oracle 10g, Java 1.5 + JSF (уровень представления) + iBatis (уровень связи с базой данных)
Там, где я сейчас работаю, иногда возникает необходимость внести небольшие изменения в каталог развертывания. Я не отрицаю, что это не лучшая практика (если я останусь достаточно долго на этом сайте, возможно, я закончу пример худших практик в целом - но в этом есть и хорошие стороны :)
Итак, три основные вещи, которые мы настраиваем:
- перекомпилированные файлы классов Java
- модифицированные JSP
- модифицированный запрос iBatis "карты" в формате XML
Например, когда сообщается об ошибке, и клиент хочет продолжить ее исправление, мы вносим исправление в файл java, перекомпилируем класс и копируем полученный файл .CLASS туда, где старая версия была помещена во время развертывание. Точно так же мы перезаписываем измененные JSP (я полагаю, что сервер приложений волшебным образом понимает, когда приходит новый JSP, и при необходимости перекомпилирует его).
В приведенных выше двух случаях, просто в качестве меры предосторожности, мы также перезапускаем сервер приложений. Я никогда не пытался увидеть, будут ли изменения работать без перезапуска - если сервер каким-то образом кэширует классы/JSP в памяти, это не так. Итак, это мой первый вопрос - являются ли изменения в файлах классов/JSP отслеживается сервером приложений? может перезагрузка не нужна?
В случае XML iBatis мы видели, что новые запросы берутся из обновленных XML, и перезапуск не требуется. Тем не менее, иногда при отмене развертывания мы видели, что некоторые XML-файлы остаются заблокированными, что означает, что iBatis что-то кэширует (не уверен, что именно).
Мне было интересно, в конечном счете, как эти настройки могут повлиять на стабильность системы? Делают ли другие люди, кроме нас, подобные вещи?