기록하는 개발자

[Linux] java class 파일 프리징 현상 - Tomcat class loader 본문

서버/Linux

[Linux] java class 파일 프리징 현상 - Tomcat class loader

gitseok 2023. 10. 26. 18:07

개발서버 class파일 부분배포 진행중 수정사항이 반영되지 않는 상황이 발생하였다.

로컬에서는 정상적으로 작동하기 때문에 문제가 발생할만한 것들을 확인했다.

 

아무런 문제가 없었기 때문에 구글링을 해보아도 "####_jsp.class 프리징" 관련 정보만 나왔다..

하다못해 해당 class파일명을 변경하고 서버 재기동 하여도 기능이 정상적으로 작동

(파일을 삭제해도 변동사항이 없었다)

 

원인 파악을 위해서 기존의 폴더는 백업하고 war 파일로 일괄 배포 진행

$CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted.

위의 에러 발생

 

찾아보니까 용량이 부족할때 발생하는 에러였다.

최신파일을 제외하고 백업 파일들은 기타 파일 서버로 이동하고 war배포 진행시 변경 사항이 정상 작동 하였다.

 

기능 문제는 확인 되었으니 기존 폴더에 변경사항 적용 후 다시 테스트 진행

언제 그랬냐는듯 정상 기능 완료

 


관련 내용의 원인을 찾아봤을때

tomcat은 class loader을 통해서 class 파일을 읽고 검증 후 메모리에 저장하는데

1. 파일을 읽고 검증하는 단계에서 서버 자체 용량 부족으로 중단

2. 메모리 변경X

3. 파일을 수정 및 삭제 하더라도 반영되지 않음

4. 기존 메모리로 재기동

Comments