Я использую TC 6 в «режиме разработки», например. классы приложений постоянно меняются, и я хочу видеть последнюю версию с минимальными хлопотами.
Некоторое время я использовал приложение TC manager 'HTML' для перезагрузки; это работало до определенного момента, но я продолжал получать ошибки OOM через некоторое время. Серфинг предположил, что при повторной загрузке ТС имеет место утечка. Плюс это было хлопотно, дополнительный шаг после компиляции каждый раз.
Итак, я переключился на установку 'reloadable true' в файле context.xml. Это работало до определенного момента и не требовало никаких дополнительных шагов, но я снова получаю ошибки OOM (реже, но все же много раз в день). Больше серфинга предполагает, что здесь также могут быть утечки ТС.
Если я запускаю приложение с «reloadable true», но ничего не перекомпилирую, или с «reloadable false», оно работает вечно (и VisualVM считает, что это нормально в отношении памяти).
Итак, я как бы пришел к выводу, что каждый раз, когда я перекомпилирую класс, я должен полностью перезагружать TC. Это огромная боль, но, возможно, лучше, чем случайные периодические сбои OOM. Просто подумал, есть ли у кого идеи получше. Может быть, я должен попробовать другой контейнер.
Приветствия и спасибо!
Большое спасибо за ответы. JRebel выглядит как отличный план, я попробую это; Похоже, что он разработан специально для решения этой проблемы, что говорит о том, что я не придумываю это, и это достаточно дешево, так что если это афера, ничего страшного.
Приложение выполняет несколько простых стандартных вызовов MySQL через ConnectorJ и по умолчанию выделяет память из коробки. Честно говоря, хотя я не понимаю, насколько эти вещи актуальны, поскольку приложение работает нормально, пока не происходит перезагрузка.
Еще раз спасибо. Еще раз, я не могу поверить, насколько полезен ТАК!