springboot

    HikariCP Pool Locking 케이스 스터디

    HikariCP Pool Locking 케이스 스터디 HikariCP Deadlock 발생 케이스 및 해결방법을 정리한 내용입니다. Pool Locking 발생 예시 환경 (가정) Thead Count: 8개 MaximumPoolSize: 5개 한 쓰레드에서 생성되는 DB 커넥션 수: 2개 1) 모든 커넥션을 사용하는 상태 Pool에 Idle Connection이 없기 때문에 handOffQueue에서 5개 쓰레드가 대기 (※ C는 Connecting, W는 Waiting, T1~T8은 Thread) Connection Timeout이 되면 SQLTransientConnectionException 발생 Exception이 발생하면 Transaction이 Rollback되면서 Connection Pool에..