스프링 배치 트랜잭션 관련 질문이 있습니다!
1200
작성한 질문수 3
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
답변 4
1
네
스프링 배치의 기본 격리수준은 serializable 입니다.
초기화 시 설정되고 있습니다.
별도의 트랜잭션을 설정하지 않으면 기본 격리수준을 따르게 됩니다.
이는 두개의 잡이 동시적으로 실행될 경우 동시성 문제를 해결하기 위함입니다.
다만 강의에서도 소개하지만 격리수준은 필요에 의해서 재설정 가능합니다.
BasicBatchConfigurer 를 상속해서 createJobRepository() 메서드를 다시 정의하면 됩니다.
강의를 참고해 주시기 바랍니다.
0
답변 감사합니다 ㅎㅎ
제가 우려하는 것은 같은 datasource를 사용하면 같은 트랜잭션 매니저를 공유하게되고
비즈니스로직상 트랜잭션 사용을 원하지 않는 부분도 스프링 배치로 인해 트랜잭션이 걸리지 않을까하는 궁금증이었습니다
0
음..
스프링 배치에서 트랜잭션 매니저는 별도로 생성하지 않으면 하나의 DataSource 와 연결되어 있을 경우 동일한 것을 사용합니다.
일반적으로 이기종 DB 나 서로 다른 Datasource 를 구성해야 할 경우 트랜잭션 매니저를 구분해서 사용합니다.
스프링 배치도 마찬가지로 트랜잭션 매니저를 여러 개 사용해야 할 상황이 발생한다면 모르겠으나 그렇지 않다면 기본 설정대로 하더라도 문제 없을 것 같습니다.
동일한 Datasource 를 사용함에 있어서 다른 트랜잭션 매니저를 사용해야 할 이유는 없어 보입니다.
0
BasicBatchConfiguration 클래스를 보면 BatchConfigurer bean이 없을 때만 BasicBatchConfigure를 사용하는 걸로 보입니다. BatchConfigurer중에 DefaultBatchConfigurer라는 클래스가 있다는 것도 알게됐는데요.
이 클래스를 사용하면 데이터 소스로부터 새로운 트랜잭션 매니저를 생성하고 배치에 사용하는걸로 이해했습니다.
그렇다면, 실무에서 사용할 때 비즈니스 로직의 트랜잭션 매니저가 공유되는 BasicBatchConfigurer를 사용하는 것 보다 새로운 트랜잭션 매니저를 사용하는 DefaultBatchConfigurer를 사용해서 트랜잭션 매니저를 분리하는게 좋을 것 같은데 혹시 어떤걸 추천하시는지 궁금합니다.
스프링 배치 버전 질문
0
119
1
소스코드가 어디에 있나요?
0
95
2
트랜잭션 예외
0
90
1
질문이 있습니다.
0
128
2
ChunkListener 에서 beforeChunk 의 실행 시점 관련 질문
0
124
2
여러 JOB 설정하는법
0
148
2
강의 자료 다른 방법 있을까요?
0
154
1
JobExecution과 JobExecutionContext와의 관계
0
185
2
특정 job만 실행
1
247
1
Batch 성능 질문
0
151
1
ItemReaderAdapter 종료
0
78
1
[ 강좌 Git 브랜치 문의 ] 섹션 9 > JdbcCursorItemReader, JpaCursorItemReader
0
178
2
Spring Batch 배포 질문
0
245
2
spring batch 버전
0
235
2
retry count 관련 질문
0
170
2
StepExecutionListener 의 afterStep 에서 return ExitStatus.FAILED 에 의한 동작에 의문이 갑니다.
0
327
2
jdbc, jpa 커서방식 조회 방식 차이 질문 (강사님께 답변 받고 싶습니다)
0
233
2
Multithread step과 AsyncItemProcessor
0
201
2
job 재실행
0
250
2
bean 생명주기 문제 도와주세요(@Scope("step"), @Autowired)
0
182
1
Multi-threaded-step과 Partitioning 차이 확인
0
171
2
jdbcCursorReader, jdbcPagingReader 질문
0
142
1
step muti-thread 질문
0
106
1
itemSteam open update close 질문
0
109
1





