Windows에서 충돌 진단
일반적으로 Java™ 에서 발생한 복구 불가능한 예외 또는 GPF (General Protection Fault) 를 알리는 팝업 창으로 충돌이 표시됩니다. 팝업 창은 대부분 충돌이 발생한 애플리케이션으로 java.exe를 참조합니다. Java 런타임의 결함 또는 Java 프로세스에서 실행 중인 원시 (JNI) 코드의 결함으로 인해 충돌이 발생할 수 있습니다.
애플리케이션에 JNI 코드가 있는지 JNI 코드를 사용하는 써드파티 패키지를 사용하는지 판별해 보십시오(예: JDBC 애플리케이션 드라이버). 이에 해당하지 않는다면 런타임 환경에 결함이 있는 것입니다.
최소의 종속성(JVM 옵션, JNI 애플리케이션 또는 프로파일링 도구와 관련)이 있는 충돌을 재생성해 보십시오.
충돌 조건에서 Java용 IBM® 서비스 팀에 대해 가능한 많은 데이터를 수집하십시오. 다음을 수행하십시오.
- Java 덤프를 수집하십시오. 세부사항은 J9 VM 참조 의 Java 덤프 사용 을 참조하십시오.
- 코어 덤프를 수집하십시오. 자세한 내용은 Windows 환경 설정 및 확인 을 참조하십시오.
- 스냅 추적 파일을 수집하십시오. 자세한 내용은 J9 VM 참조 의 Java 애플리케이션 추적 을 참조하십시오.
- JIT를 종료하고 실행해 보십시오. 세부사항은 J9 VM 참조 의 JIT 또는 AOT 문제점 진단 을 참조하십시오. JIT를 종료하면 문제가 사라지는 경우 JIT 컴파일 옵션을 사용해서 문제 범위가 더 줄어드는지 확인하십시오.
- 가비지 콜렉션 매개변수를 조정해 보십시오. 세부사항은 J9 VM 참조 의 메모리 관리 를 참조하십시오. 동작에 대한 모든 변경을 기록하십시오.
- 멀티프로세서 시스템에서 문제가 발생하는 경우 단일프로세서 시스템에서 애플리케이션을 테스트하십시오. SMP 박스에서 BIOS 옵션을 사용하여 프로세서 선호도를 1로 재설정하면 단일 프로세서와 동일하게 작동할 수 있습니다. 문제점이 사라지면 버그 보고서에 기록하십시오. 그렇지 않으면 충돌 덤프를 수집하십시오.