Spring Batch Tasklet 트랜잭션 내 개별 항목 실패 시 커넥션 누수 방지 방법

문제 요약 Tasklet 내부에서 루프를 돌며 개별 항목을 처리할 때, 예외가 발생해도 catch 블럭 내에서 로그만 찍고 다음 항목으로 진행하는 방식은 커넥션 반환이 제대로 되지 않아 HikariCP 커넥션 풀에서 누수가 발생할 수 있음. 개선 방안 예제 코드 예외 발생 시 명시적 커넥션 반환 효과

Spring Batch에서 다중 DataSource 환경에서의 커넥션 누수 방지와 안정적인 트랜잭션 처리 방법

🔹 문제 배경 대규모 배치 시스템에서 master/slave로 분리된 DB 환경을 사용하는 경우,하나의 Step 내에서 slave로부터 읽고, master에 쓰는 구조가 필요하다.그러나 잘못된 트랜잭션 구성으로 인해 slave의 커넥션이 반환되지 않고 누수(leak)되는 문제가 발생할 수 있다. 🔹 해결 전략 🔹 핵심 코드 예시 ① 트랜잭션 분리용 유틸 컴포넌트 @Componentpublic class SampleSlaveTransactionSupport { private 더 읽기

Spring Batch Tasklet에서 예외 발생 시 Slave 커넥션 반환 실패 원인 분석

문제 요약 Spring Batch Tasklet 내부에서 슬레이브(readOnly) DataSource를 통해 조회를 수행 중 예외 발생 시, PlatformTransactionManager의 rollback 처리 후 커넥션이 반환되지 않는 문제가 발생하였습니다. 원인 분석 개선 방안 또는 명시적 반환 방식: