connection

    [Spring] MariaDB connection 끊김

    가벼운 API는 상관이 없는데, 호출 한 번에 10분 넘게 소요되는 무거운 API의 경우 중간에 커넥션이 끊기는 현상이 발생했다. 검색을 해보니, DB의 wait_timeout(현재 3분)보다 커넥션이 지속되는 경우 발생하는 문제로 추정된다. 종료된 커넥션을 다시 사용하기 전에 해당 커넥션이 정상적인지 검사를 하는 작업이 필요했고, validation query 설정을 사용하기로 결정했다. 스프링 서버에 해당 설정을 추가한다. spring: datasource: tomcat: validation-query: "select 1" 설정 이후 장시간 소요되는 API에서도 커넥션 끊김 현상이 사라졌다. 참고자료 https://xzio.tistory.com/10 https://engineering-skcc.git..

    [Spring] Failed to validate connection

    서비스 운영 중 아래와 같은 경고 로그가 지속적으로 생겼다. hikariPool - Failed to validate connection org.mariadb.jdbc.MariaDbConnection@7aa2f8a6 ((conn=463456) Connection.setNetworkTimeout cannot be called on a closed connection). Possibly consider using a shorter maxLifetime value. 서비스가 동작하는데 특별한 문제는 없었지만, 자꾸 경고 로그가 발생하는 것이 거슬려서 해결해보기로 한다. 경고 로그 마지막에 using a shorter maxLifetime value 라는 것이 보여서 해당 키워드로 열심히 검색해봤다. 알아본 결..

    [AWS] RDS "Too many connections"

    [AWS] RDS "Too many connections"

    RDS 운영 중 다음과 같은 메시지가 발생하면서 RDS가 먹통이 될 때가 있다. "Too many connections" 프로젝트 배포시에 해당 오류가 발생하거나 RDS를 이용하지 못하게 되는 경우 해결 방법을 알아보자. 결론적으로 말하면 max_connections와 wait_timeout 값을 조정하면 된다. 해당 값들은 AWS Console에서 변경 가능하다. max_connections: 클라이언트가 동시에 접속할 수 있는 커넥션 수 wait_timeout: 사용하지 않는 커넥션이 닫히는 데까지 서버가 대기하는 시간 AWS Console -> RDS -> 파라미터 그룹 으로 이동하자. 파라미터 그룹은 max_connections와 같은 DB 관리에 필요한 파라미터들을 모아놓은 그룹이다. 처음엔 d..