본문 바로가기
개발 지식/JPA

[JPA] Connection Reset by Peer

by 에르주 2024. 7. 14.
반응형

실무 개발 및 failover 테스트 중에 

Connection Reset by Peer

 

가 발생하였다. 이 원인은 Client 가 요청을 보냈는데 DB 서버쪽에서 연결이 닫혔다고 다시 연결하라는 RST(Reset) 패킷을 보내는 경우에 이 에러가 발생하며 한쪽만 연결되어 있는 좀비 커넥션 발생이 발생했다는 뜻이다.

 

datasource:
  driver-class-name: org.postgresql.Driver
  hikari:
    connection-timeout: 2000
    maximum-pool-size: 5
    max-lifetime: 60000 // connection이 살아있는 최대시간 1분

 

 

max-lifetime 설정을 통해 커넥션 시간이 최대로 유지되는 시간을 설정할 수 있으며 위의 설정을 통해 커넥션 맺어진 후 해당 커넥션이 1분이 넘었을 경우에는 자동으로 제거된다.

 

 

해당 원인은 알고보니 해당 프로젝트는 QueryMethod + QueryDSL을 함께 쓰고 있었는데

 

@Bean
fun jpaQueryFactory(entityManager: EntityManagerFactory): JPAQueryFactory {
      return JPAQueryFactory(entityManager.createEntityManager())
}

 

 

해당 설정을 진행하고 있기 때문이었다. 그 원인에 대한 분석은 다음글에 분석해보자.

반응형

댓글