Java Enterprise 응용 프로그램의 클래스 로딩 문제
-
10-07-2019 - |
문제
Glassfish Server에 EJB3 및 JSF가있는 엔터프라이즈 응용 프로그램이 있습니다. 이 응용 프로그램을 2 주 이상 실행 한 후 클래스 로딩에 문제가 있음을 깨달았습니다. 나는 이것이 Permgen의 문제라고 생각하지 않습니다. 페이지를 열 때마다 수업이로드되었지만 메모리에서 결코 지워지지 않았습니다. 다음은 내 서버 메모리의 스냅 샷입니다.
따라서이 문제를 디버깅 할 수있는 방법에 대한 몇 가지 조언이 필요합니다.
다른 팁
응용 프로그램을 다시로드하는 것처럼 보이지 않으며, 이는 명백한 대답이 될 것입니다. 정말 당신은 그 수업이 무엇인지 알고 싶습니다.
반사와 XSLT [C]는 클래스를 만드는 데 명백한 목표이지만, 이것은 엄청나게 규칙적으로 보입니다. 아마도 어떤 식 으로든 누출되는 어딘가에 시간 기반 캐시가있을 것입니다.
사용하는 경우 JSF 웹 프레임 워크 (MyFaces, Icefaces 등)에서 문제가 될 수 있습니다. 특히 응용 프로그램을 재배치하지 않는다는 사실을 감안할 때 페이지가 열거/닫을 때 발생합니다. 더 많은 디버깅 및 프로파일 링을 수행하기 전에 적절한 문제 추적기를 확인하는 것이 좋습니다.
또한 의도적으로 낮은 힙 공간으로 로컬 컴퓨터에 응용 프로그램을 배포하고 응용 프로그램의 웹 페이지 만 탐색하여 메모리 누출을 일관되게 재현하려고 시도 할 수 있습니다. 바라건대, 새로운 클래스가로드 될 때 어떤 종류의 행동이 발생하는지 정확하게 알 수 있기를 바랍니다.
제휴하지 않습니다 StackOverflow