728x90
반응형
728x90
반응형

안녕하세요.

톰캣 캐시 부족 현상 해결하기에 대해 알아보겠습니다.

저의 증상은 이미 실행 중인 서비스내 로그가 많이 쌓이는 현상이었습니다.

  • 로그
27-Oct-2022 18:39:59.062 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.webresources.Cache.backgroundProcess The background cache eviction process was unable to free [10] percent of the cache for Context [/tomcat/repository] - consider increasing the maximum size of the cache. After eviction approximately [17,482] KB of data remained in the cache.
27-Oct-2022 18:40:09.063 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.webresources.Cache.backgroundProcess The background cache eviction process was unable to free [10] percent of the cache for Context [/tomcat/repository] - consider increasing the maximum size of the cache. After eviction approximately [17,482] KB of data remained in the cache.

로그가 10초마다 쌓이는 현상이었으며 저는 단순 재기동으로 증상이 해결되었습니다.

구글링 해보니 서비스 시작시 로그가 발생한 경우 톰캣 context.xml파일에 아래 설정값을 추가해주면 된다고 하니 참고해주면 될 것 같습니다.

파일위치 : /톰캣설치경로/conf/context.xml

<Resources cachingAllowed="true" cacheMaxSize="100000"/>

 

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

이클립스에서 톰캣 8.5를 설치하여 실행시 아래와 같은 오류가 발생하였습니다.

The Apache Tomcat installation at this directory is version 8.5.57.  
A Tomcat 8.0 installation is expected.

위의 오류는 이클립스에서 톰캣의 버전을 8.0까지만 사용하도록 막아서 발생한 오류입니다.

오류를 해결하는 방법에 대해 알아보겠습니다.

방법1. Catalina.jar의 파일 버전정보를 변경하기(8.5 -> 8.0)

1) Catalina.jar로 이동합니다. 파일은 톰캣의 /lib폴더안에 있습니다.

2) ServerInfo.properties파일을 수정합니다.

Catalina.jar 파일을 압축해제하여 아래의 위치에 있는 ServerInfo.properties파일을 수정합니다.

 : /lib/catalina/org/apache/catalina/util/ServerInfo.properties

변경전

변경후

3) 압축해제한 파일을 다시 jar파일로 압축합니다.

 

변경후 메세지가 사라진 것을 확인할 수 있습니다.

방법2. 이클립스 Plugin Jar 파일 설치하기

1) https://bugs.eclipse.org/bugs/attachment.cgi?id=262418&action=edit 로 이동합니다.

 

2) 다운로드 받은 후 설치된 이클립스 Plugin폴더에 넣고 재시작합니다.

 

728x90
반응형
728x90
반응형

실제 운영중인 제우스 서버에서 에러가 발생하여 JSP를 급하게 수정한 적이 있습니다.

하지만 급하게 수정한 JSP에 또 다른 문제가 발생하였습니다.

급히 백업 받은 소스로 덮어쓰기를 하였지만 수정된 JSP가 계속 적용되어 프로그램 사용에 문제가 있었던 적이 있습니다.

원인은 수정 후 적용된 JSP가 class파일로 계속 남아있어 백업 소스가 적용되지 않았던 것이였습니다.

수정한 소스 위치를 찾아 삭제 후 재요청을 하니 해결되었습니다.

JEUS6에 JSP가 적용 되지 않을 경우 조치 방법에 대해 공유하려고 합니다.

- JEUS6 jsp 컴파일 경로

 : /jeus/jeus6/webhome/[container name]/_generated_/[webContext name]/jeus_jspwork

 : $JEUS_HOME/webhome/컨테이너명/_generated_/어플리케이션명/jeus_jspwork

수정한 jsp 위치 찾아서 삭제 후 재요청

삭제시 재요청에 의해 클래스 파일이 생성되겠지만 소스 백업은 필수입니다.

 

- JSP 서비스 방식

클라이언트가 해당 JSP에 접속(JSP) -> java -> servlet class 파일로 컴파일 되어 서비스

이는 최초 사용자의 요청에 한번만 이루어지며 이후 요청에 대해 servlet class로 서비스를 하는 방식

 

728x90
반응형
728x90
반응형

webtob는 티맥스의 web서버 제품이죠

웹투비의 시작, 종료, 컴파일하는 방법에 대해 알아보겠습니다.

고객사의 SSL 인증 만료로 인해 갱신 작업이 필요해 webtob를 컴파일해 재시작해야하는 일이 생겼습니다.

 

아래와 같이 서비스 작업이 진행되었습니다.

1. SSL 인증키 업로드 및 .http.m 파일 수정

2. webtob 종료

3. webtob 시작

- http.m 위치 : Home폴더/config/http.m 

- webtob Hom폴더/bin에서 컴파일 : ./wscfl -i http.m 

- webtob Hom폴더/bin 종료 : ./wsdown 

- webToB Hom폴더/bin 시작 : ./wsboot 

 

 

728x90
반응형
728x90
반응형

+ Recent posts