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

예외를 catch했다는 사실만으로 누수를 단정하지 않기 Tasklet 루프에서 예외를 잡고 다음 항목으로 진행하면 의도하지 않은 커밋이나 rollback-only 상태를 놓칠 수 있습니다. 그러나 catch 자체가 항상 커넥션 누수를 만드는 것은 아닙니다. Spring이 관리하는 트랜잭션과 직접 획득한 JDBC 자원의 소유권을 먼저 구분해야 합니다. 항목별 롤백의 전제 기본 TransactionTemplate의 REQUIRED는 바깥 트랜잭션에 참여할 더 읽기

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

문제 요약 Spring Batch Tasklet 내부에서 슬레이브(readOnly) DataSource를 통해 조회를 수행 중 예외 발생 시, PlatformTransactionManager의 rollback 처리 후 커넥션이 반환되지 않는 문제가 발생하였습니다. 원인 분석 개선 방안 또는 명시적 반환 방식: 예외 처리와 수동 반환 조건의 정정된 설명은 Spring Batch Tasklet 트랜잭션 내 개별 항목 실패 시 커넥션 누수 더 읽기