2010-02-04 4 views
2

최대 절전 모드를 사용하는 모든 응용 프로그램이 Glassfish 2.1.1에서 완전히 배포 취소되지 않음을 알았습니다. 배포 취소 프로세스 후에 많은 클래스가 메모리에 남아 있으므로 jmap과 jhat을 사용하여 확인할 수 있습니다.Glassfish에서 깨끗한 배포 해제를 수행 할 수 있습니까?

필자는 몇 가지 테스트를 수행했으며 최대 절전 모드였던 응용 프로그램 만 clen 배포 취소 프로세스를 수행하지 못했습니다. Hibernate에 대한 내 데이터베이스 공급자는 모든 경우에 jTDS 1.2.5였습니다.

응용 프로그램을 실행할 필요가 없습니다. 방금 배포하고 즉시 배포를 취소하면 여러 클래스를 메모리에서 구현할 수 있으며 응용 프로그램의 많은 클래스와 최대 절전 모드 및 그 의존성의 많은 클래스를 알게됩니다.

Glassfish v2.1.1에서 깨끗한 배포 해제를 수행 할 수 있습니까? 나는 항상 permgen 공간을 다 쓰고있다.

+0

이것은 유용한 정보 일 수 있습니다. http://blogs.sun.com/fkieviet/entry/classloader_leaks_the_dreaded_java – vkraemer

+0

이 글은 이미 방문했지만 성공하지 못했습니다. 이 특별한 팁에서, 그는 그가 찾고있는 것을 알고 있습니다. 제 경우에는 그렇지 않습니다. 게다가, 표시되는 클래스의 수는 거대합니다. 문제의 근원을 dicover하는 방법을 찾을 수 없습니다. – user266391

+1

이 스레드를 보길 원할 수 있습니다 : http://forums.java.net/jive/thread. jspa? messageID = 384990 – vkraemer

답변

0

이것은 확실한 대답 아니지만, 당신은 최대 절전 모드를 사용하는 경우는 적어도, 글래스 피쉬 관련 undeployement 문제를 최소화 할 수 있습니다 :

  • 당신의 엔티티에 열거를 사용하지 마십시오. 대신에 정규 클래스를 생성하십시오.
  • 메서드에 주석을 달고 속성에 주석을 추가하지 마십시오.

이 두 항목은 문제를 최소화하는 데 도움이되지만 개발 환경을 제거하지는 않습니다. 최대 절전 모드를 사용하지 않더라도 sesion beans는 배치 해제 후에도 메모리에 영원히 머물러 있습니다.

+0

열거 형 문제를 설명하는 참고 자료를 게시 할 수 있습니까? 열거 형에 특별한 점은 무엇입니까? 감사. –

+0

@Caffeine Coma 실제로 이것은 JPA 엔티티에 매핑 된 enum이 메모리를 떠나지 않았 음을 나타내는 프로파일 러를 사용하여 지적되었습니다. 그러나 Jboss 사용을 중단하고 Jboss로 전환 한 이후로 더 이상 문제가되지 않습니다. 글래스 피쉬 2.1.1에는 몇 가지 메모리 누수가있는 것으로 보입니다. – user266391

관련 문제