728x90
반응형
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
반응형
728x90
반응형

대부분 아파치 톰캣을 이용해서 웹 서버를 띄우고 개발을 진행을 합니다.

아파치와 톰캣이 무엇인지 알기 위해서 WEB과 WAS에 대해서 알아야합니다.

 

WEB Server HTML 문서같은 정적 컨텐츠를 처리하는 것입니다. (HTTP 프로토콜을 통해 읽힐 수 있는 문서)

클라이언트가 GET, POST 등의 메소드를 이용해 요청 하면 프로그램이 결과를 돌려주는 기능을 합니다.

WAS Server asp, php, jsp 등 개발 언어를 읽고 처리하여 동적 컨텐츠, 웹 응용 프로그램 서비스를 처리하는 것입니다.

DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우 사용합니다.

apache web server(html) 이고

tomcat Servlet/JSP container = WAS(Web Application Server)

아파치는 jsp처리를 못하기 때문에 jsp를 받아서 톰캣에서 처리하고 다시 아파치로 넘겨주는 작업을 합니다.


웹 컨테이너란 웹 서버에서 JSP를 요청해 톰캣에서 JSP파일을  서블릿으로 변환하여 컴파일하여 서블릿의 결과를 웹서버의 전달하는 것입니다.


출처 : http://gap85.tistory.com/45


*정적 컨텐츠와 동적 컨텐츠의 차이

 

 장점

단점 

 정적 컨텐츠

 *요청에 의한 파일만 전송하면 되기 때문에 속도가 빠르다. 

 *비용이 적다.

 *저장된 정보만 보여 줄 수 있기 때문에 서비스가 제한적이다.

 *관리가 힘들다.

 동적 컨텐츠

 *데이터의 조작이 가능하기 때문에 서비스가 다양하다.

 *관리가 쉽다.

 *정적 컨텐츠에 비해 속도가 느리다.

 *WAS서버가 필요하기 때문에 추가적인 비용이 든다.


출처: http://titus94.tistory.com/4

728x90
반응형

'프로그래밍 > Web' 카테고리의 다른 글

아파치 버전 확인하는 방법  (0) 2022.10.21
HTTP란 무엇인가??  (0) 2017.12.15
JSP 처리과정!!  (0) 2017.11.30
서버와 클라이언트 생활코딩 강의  (0) 2017.07.14
728x90
반응형

+ Recent posts