Propagation.REQUIRES_NEW 관련 질문드립니다.
702
작성한 질문수 9
"부모의 트랜잭션과 동일한 범위로 묶인다면 Synchronized 와 같은 문제가 발생합니다.
Database 에 commit 되기전에 락이 풀리는 현상이 발생합니다."
이 부분이 잘 이해가 가지 않습니다.
부모 트랜잭션이 어떤걸 말씀하시는걸까요?
트랜잭션 시작, 실행, 트랜잭션 종료 (종료시 데이터베이스 커밋) 으로 동작하는걸로 알고 있습니다.
부모 트랜잭션과 동일한 범위로 묶이는 것도 무슨 말인지 모르겠고, 동일한 범위로 묶이면 왜 커밋 전 락이 풀리는지 잘 이해가 가지 않습니다 ㅠ
답변 1
3
윤다정님 안녕하세요.
Spring 의 @Transactional 어노테이션은 시작할때 Transaction 을 시작합니다.
기본옵션으로 실행시 부모의 트랜잭션을 따라가게 됩니다.
예를 들어보자면 A Class 에 a 메소드가 있고 B Class 에 b 메소드가 있다고 가정해보겠습니다.
public class A {
private B b;
@Transactional
public void a() {
b.b();
}
}
public class B {
@Transactional
public void B() {}
}이럴경우 A Class 의 a 에서 새로운 트랜잭션이 생성되고 B.b 메소드를 호출하게됩니다.
b 메소드에도 Transactional 이 있지만 새로 생성하지않고 부모(B.b 메소드를 호출한곳 즉 A.a) 에서 이미 트랜잭션이 생성된 트랜잭션을 그대로 사용하게 됩니다.
자세한 내용은 Spring 의 @Transactional 을 공부해보시면 도움이 되실겁니다.
레디선 테스트코드에서 채널이름은 없어도 되는건가요?
0
48
2
낙관적 락을 사용할 떄 차이점
0
127
2
동시성 검증 코드에 관한 문의
0
97
2
단일연산
0
71
2
낙관적락vs. 레디스락
0
109
2
안녕하세요. 레디슨 질문있습니다..!!
0
67
2
@Lock(OPTIMISTIC)이 필요한 이유
0
91
2
get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?
0
132
2
DataSource Hikari 사용 이유
0
149
2
saveAndFlush 사용 이유 문의
0
114
3
비관적 락 VS 네임드 락
0
161
3
application.yaml 에 redis 정보
0
101
2
왜 클래스 이름에 Facade 가 붙나요?
0
185
2
@Transactional 으로 인한 동시성 문제 발생 원인이 궁금합니다.
0
220
2
@modifying 이용한 동시성 제어
0
168
2
DB락과 분산락
0
263
2
NamedLock 테스트 실패
0
186
2
테스트에서 트랜잭션 어노테이션 질문 있습니다.
0
174
2
optimistic Lock 재시도 질문입니다.
0
233
2
낙관적 락 테스트 실패
0
242
2
오류?
0
1632
4
LettureLockStockFacadeTest에서 오류가 발생합니다.
1
268
2
Pessimistic Lock 전체 테스트 오류 문의
0
362
3
비관적 락 vs 레디스(Lettuce)락 비교 관련 질문
0
462
2





