Мое приложение использует как RMI, так и JDBC для связи с удаленной системой и базой данных. В то время как проблемы с базой данных были решены, выясняется, что RMI вызывает некоторую форму утечки памяти, обнаруженную Tomcat 6 (я также пробовал это с Tomcat 7, и у нас такая же проблема).RMI/Tomcat 6 Утечка памяти
В основном, когда мы запускаем приложение и пользователь вводит информацию на веб-страницу, вызов RMI производится в бэкэнд-системе. Если мы остановимся/запустим или перезапустим приложение, Tomcat Manager теперь сможет обнаруживать утечку памяти. Если мы запустим приложение и НЕ выполняем вызов RMI, мы можем запустить/остановить & перезапустить приложение в течение всего дня без проблем.
Кто-нибудь знает, что нужно сделать, чтобы предотвратить вызовы RMI из-за утечек памяти в WebappClassLoader при перезагрузке или остановке/запуске, пока веб-сервер все еще работает?
что сообщение от tomcat? Это о ThreadLocal? – ZhongYu
Нет, это просто - в журналах нет сообщения об ошибке. НО, Tomcat Manager утверждает, что утечка была обнаружена, если я нажимаю кнопку «Найти утечки» после выполнения чего-то в приложении, которое использует вызов RMI, а затем перезагружает/останавливает приложение с помощью Менеджера. Я вижу в jvisualvm, что действительно создается новый WebappClassLoader (контекст). – kvgeorge1