WAS/JVM(공통)

[Tips] AIX에서 javacore 파일

투칼론 2019. 11. 5. 22:02
반응형
1. 개요

javacore 파일은 실행 중인 Java 프로세스의 스냅샷이다. 운영체제의 특별한 시그날에 의해 생성된다. javacore 파일은 Java 프로세스의 모든 스레드의 상태를 보여주고, Java synchronization lock 상태를 보여준다.
JVM이 hang, 무한루핑 코드, CPU과점유, 데드락, OutOfMemory 발생 시에 원인 파악하는데 도움이 되는 정보를 담고 있는 파일이다.
시스템 코어 덤프파일과는 다르다.


2. 포함하고 있는 내용

  • JVM 커맨드라인
  • 환경 변수
  • 로딩된 라이브러리
  • 실행 중인 스레드, 스레드 스택트레이스, 스레드가 잡고 있는 락 정보
  • GC 정보와 메모리 정보

3. 파일 생성 위치

IBM_JAVACOREDIR 환경 변수 설정 또는 JVM 커맨드라인의 -DWORKING_DIR 옵션으로 설정 가능
위의 설정이 안되어 있으면, Java 프로세스가 기동되는 현재 디렉터리(Working 디렉터리) 위치에 생성됨


4. javacore 파일 명명

javacorePID.TIME.txt 파일명으로 생성됨
이때, PID는 processID, TIME은 time since 1/1/1970

참고로, LINUX는 javacore.YYYYMMDD.HHMMSS.PID.txt 파일명으로 생성됨



5. javacore 파일 생성 시점

  • 심각한 네이티브 오류(자바 예외와는 다름)
  • 실행하기 위한 메모리 부족
  • SIGABRT, SIGQUIT과 같은 운영체제 시그날
  • 자바코드에서 JavaDump() 메소드


참고로, 아래와 같은 방법으로 javacore 파일 생성을 막을 수가 있다.

JDK 5 이전 버전에서는 DISABLE_JAVADUMP=TRUE 로 설정
JDK 5 이상 버전에서는 Xdump:java:none 설정