Spring Batch 기반의 배치 작업을 수행하던 중 다음과 같은 예외가 발생했습니다. com.sample.common.exception.CustomException: 테스트용 오류 발생 예시입니다. at com.sample.batch.job.ExampleJob.lambda$1(ExampleJob.java:174) … at com.sample.SampleBatchApplication.main(SampleBatchApplication.java:118) 해당 Stack Trace를 보면 ExampleJob.lambda$1 메서드에서 CustomException이 발생했으며, 이 예외는 Spring Batch 내부 프로세스를 거쳐 main() 메서드까지 전파되었습니다. 이를 이해하기 위해 다음과 같은 예외 전달 순서를 주목할 수 있습니다: 더 읽기
spring batch
Kubernetes 환경에서 Spring Boot 배치 오류 전파 및 종료 코드 처리
1. 문제 상황 Spring Boot 기반 배치 애플리케이션을 실행하는 과정에서 오류 발생 시 CallRunner까지 예외 전파 및 종료 코드 처리가 제대로 이루어지지 않는 문제가 발생했다. 2. 원인 분석 3. 해결 방법 ✅ 1️⃣ 예외가 CallRunner까지 정상적으로 전파되도록 설정 ✅ 2️⃣ System.exit() 실행 위치 조정 ✅ 3️⃣ Kubernetes Pod 종료 상태 더 읽기
Spring Batch 오류 전파 및 NOOP 해결 방법 (자동 실행 vs 수동 실행)
Spring Batch 실행 중 오류가 main()까지 전달되지 않는 문제와 NOOP 상태(All steps already completed or no steps configured for this job.) 발생 문제를 해결하는 방법을 정리합니다.자동 실행(Spring Boot spring.batch.job.enabled=true)과 수동 실행(spring.batch.job.enabled=false 후 JobLauncher 직접 호출) 방식에 맞게 정리하였습니다. 1. Spring Batch 오류 전파 문제 🔍 문제 상황 2. 자동 실행 더 읽기
Aurora MySQL·RDS MariaDB에서 Spring Batch 강제 종료 시 롤백 확인하기
내용 정정: “Aurora MariaDB”는 정확한 엔진 명칭이 아닙니다. Aurora MySQL과 RDS for MariaDB를 구분하고, 아래 설명은 InnoDB 트랜잭션을 전제로 읽어야 합니다. AWS Aurora 공식 소개. Pod가 종료되면 즉시 롤백될까? autocommit=false 자체가 Pod 종료 감지 기능은 아닙니다. DB가 연결 종료를 감지하면 해당 세션의 미커밋 트랜잭션은 롤백 대상이 됩니다. 이미 커밋된 청크와 더 읽기
Spring Batch 멀티스레드 처리 중 대기 상태 발생 및 트랜잭션 롤백 해결 방법
Spring Batch 환경에서 멀티스레드 처리 중 특정 스레드가 대기 상태에 빠지고, Pod가 계속 Running 상태가 되는 문제를 해결하는 방법을 정리합니다. 1️⃣ 문제 상황 2️⃣ 대기 상태가 발생하는 원인 분석 3️⃣ 해결 방법 ✅ 스레드 타임아웃 적용 ✅ 예외 발생 시 CountDownLatch.countDown() 보장 ✅ 대기 상태 감지 및 강제 종료 (shutdownNow() 더 읽기
Spring Batch 멀티스레드 환경에서 HikariCP Connection Leak 문제 해결 방법
🔹 개요Spring Batch에서 멀티스레드 환경을 사용한 후 HikariCP의 Connection Leak 경고가 발생하는 문제에 대해 분석하고 해결 방법을 정리합니다.특히 멀티스레드와 HikariCP의 connection-pool 설정, 트랜잭션 관리 방식, DAO 호출 구조가 Connection Leak에 미치는 영향을 집중적으로 다룹니다. 🔹 HikariCP 설정과 Connection Leak 원인 분석 사용된 HikariCP 설정은 다음과 같습니다. minimum-idle: 2 maximum-pool-size: 30 더 읽기