가벼운 API는 상관이 없는데, 호출 한 번에 10분 넘게 소요되는 무거운 API의 경우 중간에 커넥션이 끊기는 현상이 발생했다.
검색을 해보니, DB의 wait_timeout(현재 3분)보다 커넥션이 지속되는 경우 발생하는 문제로 추정된다.
종료된 커넥션을 다시 사용하기 전에 해당 커넥션이 정상적인지 검사를 하는 작업이 필요했고, validation query 설정을 사용하기로 결정했다.
스프링 서버에 해당 설정을 추가한다.
spring:
datasource:
tomcat:
validation-query: "select 1"
설정 이후 장시간 소요되는 API에서도 커넥션 끊김 현상이 사라졌다.
참고자료
https://engineering-skcc.github.io/cloud/tomcat/apache/performancetest/MySqlDBWaitTimeOut/
https://velog.io/@0_sujeong/spring-MariaDB-connection-끊김-문제-해결
'java > spring' 카테고리의 다른 글
[Spring] 엑셀 다운로드 API (0) | 2022.08.04 |
---|---|
[Spring] request multipart file size 조정 (0) | 2022.08.03 |
[Spring] Failed to validate connection (0) | 2022.08.03 |
[Spring] AWS S3 객체 전체 조회 or 해당 level만 조회 (0) | 2022.08.01 |
[Spring] AWS S3 접근 (0) | 2022.07.25 |