2014-07-16 3 views
2

메모리 부족 [OOME] 오류가 발생하면 Tomcat을 자동으로 다시 시작하도록 구성 할 수 있습니까? 내가outfmemory 오류가 발생하면 tomcat을 자동으로 다시 시작하십시오.

-XX:OnOutOfMemoryError="/yourscripts/tomcat-restart" 

하지만 여기에 반드시 "yourscripts"어떤 디렉토리 서 생각으로

?

+0

스크립트 단지 위치 특징이다 당신은 tomcat-restart.sh라는 스크립트를 가지고있다. – Satya

+0

가장 좋은 방법은 tomcat 프로세스가 실행 중인지 그리고 시작하지 않았는지 확인하는 bash 스크립트를 만드는 것이다. 그리고 원하는 간격으로 cron에서 실행되도록이 스크립트를 구성합니다. 그러나 이것을하지 말아야합니다. 왜 메모리 부족 문제가 발생 하는지를 알아 내야하고 더 현명 할 것이라고 수정해야합니다. –

+0

프로세스가 일부 유형의 충돌에 도움이되는지 확인하지만 때때로 JVM이 좀비가되므로 프로세스가 계속 실행 중이지만 응답하지 않습니다. –

답변

4

-XX:OnOutOfMemoryError에 제공하는 값은 실행 파일의 완전한 경로 여야합니다 (실행 가능한 스크립트 일 수 있음). 이 스크립트는 기본적으로 즉시 반환되어야 jvm을 계속하고 종료 할 수 있습니다. 따라서 백그라운드에서 바람둥이를 멈추고 시작해야합니다. 이 효과적으로이 스크립트에서 발생할 수 있습니다

스크립트 1 :

#!/bin/bash 
script2.sh & 

스크립트 2 : 스크립트

# stop tomcat 
# make sure it is dead (kill "zombie" process if necessary) 
# start tomcat 

-XX:OnOutOfMemoryError shoudl 포인트 1.

+0

감사합니다 !! 내 재시작 스크립트가 문제를 일으키고있었습니다. 내부의 Tomcat이 종료되어 아무튼 소켓을 열어 재시작을 완료 할 수 없었습니다. 이것은 훨씬 똑똑하다. – Datbates

관련 문제