개발 지식/JPA
[JPA] Connection Reset by Peer
에르주
2024. 7. 14. 21:27
반응형
실무 개발 및 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())
}
해당 설정을 진행하고 있기 때문이었다. 그 원인에 대한 분석은 다음글에 분석해보자.
반응형