트랜잭션 경계 와 트랜잭션 begin에 대한 구분
안녕하세요 정수원 선생님 질문이 2개 있습니다.
1) "Chunk Process 아키텍처" 첫번째 사진 설명부분 4:26쯤에 트랜잭션 경계와 실제 트랜잭션 begin을 구분하셨는데 이것이 무슨 차이인가요?
아니면 어떻게 받아들여야하는것인가요?
2) 또한 코드를 디버깅 걸어서 따라가보니 TaskletStep#doInChunkContext 에서 new TransactionTemplate.execute() 에서 매 chunk마다 트랜잭션이 시작되는것은 확인하였는데
그림에 나온것 처럼 SImpleChunkProvider 다음과정에서 Transaction 시작하는곳을 찾지 못하겠습니다...
답변 1
2
1) 트랜잭션 경계라는 의미는 청크 단위로 트랜잭션이 생성되고 종료되기 때문에 청크를 감싸고 있다는 의미에서의 경계라고 보시면 되고 트랜잭션 begin 은 실제 소스코드 레벨에서 트랜잭션이 시작되는 시점과 위치를 의미하신다고 보면 됩니다. 두 가지로 구분했지만 실제로는 동일한 의미로 해석하시면 됩니다.
2) SImpleChunkProvider 에서 ItemReader 의 read() 가 시작됩니다. 즉 여기서부터 실제 트랜잭션이 시작되는 곳이고 마지막으로 ItemWriter 작업이 종료되는 시점에 Commit 이 일어납니다.
즉 소스 코드가 직접 있다는 의미가 아닌 아이템을 읽어드리는 시점에 트랜잭션이 시작된다는 그런 관점에서 이해하시면 됩니다.
스프링 배치 버전 질문
0
122
1
소스코드가 어디에 있나요?
0
96
2
트랜잭션 예외
0
92
1
질문이 있습니다.
0
130
2
ChunkListener 에서 beforeChunk 의 실행 시점 관련 질문
0
125
2
여러 JOB 설정하는법
0
150
2
강의 자료 다른 방법 있을까요?
0
154
1
JobExecution과 JobExecutionContext와의 관계
0
186
2
특정 job만 실행
1
252
1
Batch 성능 질문
0
153
1
ItemReaderAdapter 종료
0
80
1
[ 강좌 Git 브랜치 문의 ] 섹션 9 > JdbcCursorItemReader, JpaCursorItemReader
0
179
2
Spring Batch 배포 질문
0
246
2
spring batch 버전
0
236
2
retry count 관련 질문
0
172
2
StepExecutionListener 의 afterStep 에서 return ExitStatus.FAILED 에 의한 동작에 의문이 갑니다.
0
330
2
jdbc, jpa 커서방식 조회 방식 차이 질문 (강사님께 답변 받고 싶습니다)
0
235
2
Multithread step과 AsyncItemProcessor
0
203
2
job 재실행
0
251
2
bean 생명주기 문제 도와주세요(@Scope("step"), @Autowired)
0
183
1
Multi-threaded-step과 Partitioning 차이 확인
0
175
2
jdbcCursorReader, jdbcPagingReader 질문
0
146
1
step muti-thread 질문
0
111
1
itemSteam open update close 질문
0
112
1





