을 만들고 싶으면 어떻게 해야 하 thread dump Java 웹 응용 프로그램 시작
-
01-07-2019 - |
문제
은 그것을 얻을 수 thread dump Java 웹 응용 프로그램을 시작?고 할 수 있다면,어떻게 해야 하나요?
그것은 좋은 것이 있다면 간단한 솔루션을 수 있도록 비자(고객)을 만들 thread dump.또한,그것이 가능한 스레드를 작성하는 덤프 프로그래밍 방식으로?
에서 Java Web Start 콘솔 얻을 수 있는 목록의 스레드를 눌러't'지만 stacktraces 포함되지 않습니다.
경우 응답을 필요로 특정 자바 버전을 주시기 바랍니다.
해결책
콘솔에서 보 V 보다는 오히려 T:
t: dump thread list
v: dump thread stack
이 작품에서 JDK6.지 않는 다른 사람에 대해 알고.
대체,아래 JDK5(그리고 아마도 이전)에 보낼 수 있습 전체 스택 추적의 모든 스레드 표준웃:
Windows 에서: 형 ctrl-에서 휴식 Java console.
아래에서 유닉스: kill -3 <java_process_id>
(예:죽 -3 5555).이를 죽이지 않을 것입니다습니다.
다른 하나는 일:다른 사람으로 말,당신을 얻을 수 있는 스택 프로그래밍을 통해 Thread
클래스 하지만 조심 Thread.getAllStackTraces()
전 JDK6 있는 메모리 누수가 발생합니다.
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434648
감사합니다,
스코
다른 팁
최근 Jdk(슬프게도 Jre)공구를 포함 같이 jstack 는 이러한 것들입니다.Jvm 은 버전에서 5 포 JMX 확장를 얻을 덤프레드,메모리,통계,그리고 훨씬 더 많은.모든 java 응용 프로그램을 포함하여 웹 응용 프로그램을 시작한,이 기능을 사용할 수 있다.
당신은 것 중 하나가 필요 JDK 설치하거나 쓰기 JMX 클라이언트는 동일한 것입니다.살펴보 http://java.sun.com/javase/6/docs/technotes/guides/management/ 자세한 정보를 얻을 수 있습니다.
부터 1.5 사용할 수 있는 Thread.getAllStackTraces()
을 얻 Map
을 반복.
는 이상적인 출력이 될 것이라고 생산에서 Ctrl+\(또는 Ctrl 휴식 또는 유사한)지만,거기에있을 것 같지 않는 문서화된 방법으로 생산이다.는 경우 당신이 기꺼이 자신을 제한하는 태양의 JVM(또는 사용하는 반사가 가)있을 수 있습이 파고 주변 sun.*
패키지면 아무 것도 흥미로운 보여줍니다.
도
StackTraceElement[] stack = Thread.currentThread().getStackTrace();
다음을 반복 사용할 수 있습 컬렉션하는 표시의 상위 스택 요소에 관심이 있다.
이후 자바 5 있 getStackTrace()메서드의 스레드 클래스입니다.전 버전에 당신은 할 수 있습니다:
Thread.currentThread().dumpStack();
이것을 인쇄할 것이다 스택 추적하는 시스템입니다.나