DBAtlas · 데이터베이스 운영 아틀라스

08003: connection_does_not_exist

PostgreSQL

의미

존재하지 않는(이미 닫힌) 데이터베이스 연결에서 작업을 시도했다. 애플리케이션이 유효하지 않은 연결 핸들로 쿼리를 보내려 했다. Class 08(connection_exception)에 속한다.

원인

연결 타임아웃, 서버에 의한 종료, 네트워크 장애, 실제로는 죽은 연결을 풀에서 가져온 경우, 또는 애플리케이션 코드에서 close()된 연결을 재사용한 경우다.

해결 방법

커넥션 풀에서 생존 확인을 활성화하고(validation query / keepalive), 죽은 연결을 풀에서 제거하는 설정을 구성한다(예: HikariCP의 connectionTestQuery/maxLifetime). 애플리케이션에서는 사용 전에 연결이 열려 있는지 확인하고, 끊기면 자동으로 재연결한다. TCP keepalive와 idle_in_transaction_session_timeout 값을 검토한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목