2012-03-20 12 views
5

Tomcat słynie z nieszczelności programu Classloader, która występuje podczas wielokrotnych przeniesień aplikacji. Wydaje się, że zwykle koncentrują się wokół klasy rejestratora. Powtarzające się przegrupowania kończą się powodując błędy Perm Gen.Czy Tomcat 7 poprawia sytuację wycieku Classloader z Tomcat 6?

Wiem, że to jest duży problem w Tomcat 6. Czy jest lepszy w Tomcat 7?

Na marginesie, czy ktoś ma jakieś dobre zasoby do obsługi przecieków klasyloader. Czy sytuacja jest lepsza z innymi serwerami?

+1

Odbijaj serwer podczas wdrażania aplikacji? – sourcedelica

+0

@ericacm To jest standardowa rzecz do zrobienia! Jednak staram się tego uniknąć. Zwłaszcza jeśli na serwerze znajduje się wiele aplikacji. – Joe

Odpowiedz

5

Cóż, nie jest to spowodowane przez Tomcat, ale raczej przez aplikacje wykorzystujące ThreadLocal s, upadające wyrejestrować sterowników JDBC lub zatrzymujące niestandardowe gwinty itp Tomcat 6 wprowadzono pewne wyciek pamięci mechanizmu detekcji, Tomcat 7 poprawił go znacząco: MemoryLeakProtection .

W odniesieniu do wycieków rejestratorów, spójrz na bardzo wyczerpujące Taxonomy of class loader problems encountered when using Jakarta Commons Logging.