Programming2015.11.05 18:02

1.이클립스에서 톰캣 실행시 오류 나는경우

Server탭의 오류나는 서버 더블클릭 > 

General Information 탭 > Open launch configuration 클릭 > 

Arguments 탭 > VM arguments 필드 마지막에 아래 내용 추가.

 -XX:PermSize=256m -XX:MaxPermSize=256m



2. 톰캣만 실행했을시 오류 나는 경우 (Tomcat 8의 경우..)


{TOMCAT_HOME}/bin/catalina.sh  파일을 편집기로 열어서 제일 상단에 아래 내용 추가.

 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"


But.. 나는 아무리 해봐도 사이즈가 늘어나질 않는다.. Tomcat 8버전이라서 그런지.. 다른 옵션이 있는건지.. catalina.sh는 참조 하지도 않는듯한 것은 기분탓?


그래서 찾아낸 방법

{TOMCAT_HOME}/bin/catalina.bat 파일을 편집기로 열어서 JAVA_OPTS를 설정하는 부분을 찾는다. 아래 표 부분. 키워드는 JAVA_OPTS 이다

if not "%LOGGING_CONFIG%" == "" goto noJuliConfig

set LOGGING_CONFIG=-Dnop

if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig

set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

:noJuliConfig

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% "

if not "%LOGGING_MANAGER%" == "" goto noJuliManager

set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

:noJuliManager

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"



뭔가 설정이 다를경우 JAVA_OPTS를 다르게 설정 해주는것 같은데.. 그냥 저기서 자바 실행 환경 부분을 아래와 같이 추가 해준다. (따옴표 주의!!)

if not "%LOGGING_CONFIG%" == "" goto noJuliConfig

set LOGGING_CONFIG=-Dnop

if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig

set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

:noJuliConfig

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% 

-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"

if not "%LOGGING_MANAGER%" == "" goto noJuliManager

set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

:noJuliManager

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER% 

-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"



정상적으로 반영 됐는지 확인은 VisualVM 으로...


참고 : http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/

Posted by 시긔양

댓글을 달아 주세요