728x90
반응형

프로그램을 개발하다 보면 자바 OOME(OutOfMemory)를 겪어 본적이 있을 것 같은데요.

OOME(Out Of Memory Error)는 JVM의 메모리가 부족하여 발생한 에러 입니다.

OOME는 자바의 일반적은 오류와 달리 대응이 쉽지가 않습니다.

오류를 해결하기 위해 JVM Option으로 덤프 파일을 생성한 후 덤프 파일을 분석하여 해결을 해야 합니다.

짧은 시간으로 오류를 찾기는 쉽지 않습니다.

그래서 OOME발생시 JVM옵션을 이용하여 톰캣 자동으로 시작할 수 있는데요.

JVM의 OnOutOfMemoryError 옵션을 사용하여 OutOfMemroy 발생 이후에 특정 동작을 지정하면 됩니다.

 

1) 톰캣의 catalina.sh 실헹

 : CATALINA_OPTS의 아래 옵션을 추가합니다.

CATALINA_OPTS="-Djava.awt.headless=true -server -Xms2048m -Xm2048m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError=/app/serviceRestart.sh

 

2) 재시작 쉘 스크립트 생성

#!/bin/sh
 
export JAVA_HOME=/usr/local/java
export PATH="$PATH:$JAVA_HOME/bin"
export CATALINA_HOME=/usr/local/tomcat8
 
 
# 톰캣 서비스 다운
/app/tomcat8/bin/shutdown.sh
#시간은 서비스 기동 시간에 따라 조절.
sleep 60

# 톰캣 서비스 시작
/app/tomcat7/bin/startup.sh

shutdwon.sh로 서비스가 중단이 안되는 경우 force 옵션을 추가하면 강제로 중지할 수 있습니다.

 

 

 

728x90
반응형

+ Recent posts