트러블슈팅

[트러블 슈팅] IO 오류: Socket read interrupted (SQL Error: 17002, SQLState: 08006)

코택 2022. 11. 1. 19:13

개요

API를 통해 오라클 DB에 데이터를 INSERT하려고 했는데 다음과 같은 에러가 발생했다.

o.h.e.jdbc.spi.SqlExceptionHelper    [WARN ] : SQL Error: 17002, SQLState: 08006
o.h.e.jdbc.spi.SqlExceptionHelper    [ERROR] : IO 오류: Socket read interrupted
o.s.orm.jpa.JpaTransactionManager    [DEBUG] : Participating transaction failed - marking existing transaction as rollback-only
o.s.orm.jpa.JpaTransactionManager    [DEBUG] : Setting JPA transaction on EntityManager [SessionImpl(324936011<open>)] rollback-only
o.s.orm.jpa.JpaTransactionManager    [DEBUG] : Initiating transaction rollback
o.s.orm.jpa.JpaTransactionManager    [DEBUG] : Rolling back JPA transaction on EntityManager [SessionImpl(324936011<open>)]

덤으로 504과 함께 타임아웃도 발생했다.

 

 

해결

DB 락 때문에 발생했다. DataGrip에서 중복 데이터를 지웠는데 커밋이 안 돼서 락이 물려있었다. 커밋을 해주니 정상적으로 응답이 왔다.

예전에도 DataGrip과 같은 DB 클라이언트 툴을 사용하면서 비슷한 문제를 겪은 적이 있는데, 이번에도 비슷한 삽질을 했다.

다행히 팀원분의 도움으로 해결..

 

 

참고

https://stackoverflow.com/questions/54345473/sqlstate08006-errorcode17002-when-using-hikaricp-jdbc-connection-pool