배치실행환경 4.0(SpringBatch) 에서 메모리 이슈 도움 부탁드립니다.
- 작성자 :
- 김*희
- 작성일 :
- 2023-10-30 17:05:04
- 조회수 :
- 615
- 구분 :
- 실행환경 / 4.0
- 진행상태 :
- 완료
Q
현재 배치환경 4.0 + Cubrid + Tomcat 9.0 + Window 로 서버환경 배포 전 로컬 환경에서 마지막 테스트를 진행하기 하고 있습니다.
배치가 4시간 정도 지나고 나면 메모리 오류로 OOM을 일으킵니다.
1) Job 이 xml이 아닌 Spring Batch 를 별도 구현하였습니다.
2) 배치등록 시 Spring Batch Configure 로 구성된 Job으로 자동로드된 Job을 매핑하여 등록하는 방식으로 커스터마이징 되었습니다.
쿼츠에서 XML을 다시 재로드 하고 나서는 메모리가 다시 올라가고 재반환되지 않는 것으로 보입니다.
VisualVM 으로 분석해본 결과 Worker1~Worker10 까지 계속 메모리가 쌓이고 있습니다.
SpringBatch 전통 방식으로 Job을 만들다 보니, xml에서 componet scan 을 통해 Batch Config 와 JPA Entity등이 매번 다시 로드 되고 있습니다.
혹시 XML 을 다시 재로드할때마다 메모리 에서 반환하지 못하는 부분 이슈를 보신 적이 있는지 궁금합니다.
JPA Entity 가 계속 반환되지 않고 쌓이는 것인지 분석이 조금 어렵습니다.
도움을 받을 수 있을까요?
현재 배치환경 4.0 + Cubrid + Tomcat 9.0 + Window 로 서버환경 배포 전 로컬 환경에서 마지막 테스트를 진행하기 하고 있습니다.
배치가 4시간 정도 지나고 나면 메모리 오류로 OOM을 일으킵니다.
1) Job 이 xml이 아닌 Spring Batch 를 별도 구현하였습니다.
2) 배치등록 시 Spring Batch Configure 로 구성된 Job으로 자동로드된 Job을 매핑하여 등록하는 방식으로 커스터마이징 되었습니다.
쿼츠에서 XML을 다시 재로드 하고 나서는 메모리가 다시 올라가고 재반환되지 않는 것으로 보입니다.
VisualVM 으로 분석해본 결과 Worker1~Worker10 까지 계속 메모리가 쌓이고 있습니다.
SpringBatch 전통 방식으로 Job을 만들다 보니, xml에서 componet scan 을 통해 Batch Config 와 JPA Entity등이 매번 다시 로드 되고 있습니다.
혹시 XML 을 다시 재로드할때마다 메모리 에서 반환하지 못하는 부분 이슈를 보신 적이 있는지 궁금합니다.
JPA Entity 가 계속 반환되지 않고 쌓이는 것인지 분석이 조금 어렵습니다.
도움을 받을 수 있을까요?
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 : 4.0
- JDK(JRE) 정보 :
- WAS 정보 : 톰캣 9
- DB 정보 : Cubrid
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
커스텀한 소스의 경우 워낙 범위가 넓어
확인해 드리기 어렵습니다.
현재 배포하고 있는 수정되지 않은 상태의 소스를 기준으로 범위를 좁혀서
발생하는 케이스를 알려주시면 테스트 해볼 수 있을듯 합니다.
감사합니다.
표준프레임워크센터 입니다.
커스텀한 소스의 경우 워낙 범위가 넓어
확인해 드리기 어렵습니다.
현재 배포하고 있는 수정되지 않은 상태의 소스를 기준으로 범위를 좁혀서
발생하는 케이스를 알려주시면 테스트 해볼 수 있을듯 합니다.
감사합니다.