inflearn logo
강의

講義

知識共有

在庫システムで調べる同時性問題の解決方法

Pessimistic Lockを活用する

계속해서 데이터가 줄지 않고 100개로 나옵니다.

884

jeonjihoon93

投稿した質問数 1

0

OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

2023-08-02T14:04:15.469+09:00 DEBUG 24388 --- [ main] org.hibernate.SQL : insert into stock (product_id,quantity) values (?,?)

Hibernate: insert into stock (product_id,quantity) values (?,?)

2023-08-02T14:04:15.723+09:00 DEBUG 24388 --- [ main] org.hibernate.SQL : select s1_0.id,s1_0.product_id,s1_0.quantity from stock s1_0 where s1_0.id=?

Hibernate: select s1_0.id,s1_0.product_id,s1_0.quantity from stock s1_0 where s1_0.id=?

2023-08-02T14:04:15.788+09:00 DEBUG 24388 --- [ main] org.hibernate.SQL : select s1_0.id,s1_0.product_id,s1_0.quantity from stock s1_0

Hibernate: select s1_0.id,s1_0.product_id,s1_0.quantity from stock s1_0

2023-08-02T14:04:15.802+09:00 DEBUG 24388 --- [ main] org.hibernate.SQL : delete from stock where id=?

Hibernate: delete from stock where id=?

 


 

org.opentest4j.AssertionFailedError:

Expected :0

Actual :100

 

이유가 뭔지 잘 모르겠습니다. 코드도 아무리 봐도 같습니다 ㅠㅠ

java spring 동시성

回答 4

2

Devo

저도 위와 같이 update 쿼리가 수행되지 않았습니다.
저는 다음과 같이 해결을 했습니다.

코드 쿼리 문에서 적용된 네임드 파라미터를 @Param 으로 명시해 주었더니, update 쿼리가 수행되었습니다.

수정한 코드는 다음과 같습니다.

@Query("select s from Stock s where s.id = :id")
Stock findByIdWithPessimisticLock(@Param("id") Long id);

0

rhkdals195

오 감사합니다 해결했습니다.

0

169developer9973

네 접속은 됐는데 어떤 테스트가 실패하시는걸까요 ?

0

jeonjihoon93

섹션3의 모든 테스트가 실패로 나옵니다.

https://www.inflearn.com/questions/894022/%EC%84%B9%EC%85%98-3%EC%97%90%EC%84%9C%EC%9D%98-%EB%AA%A8%EB%93%A0-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BC%80%EC%9D%B4%EC%8A%A4%EA%B0%80-%EB%8F%99%EC%9E%91%ED%95%98%EC%A7%80-%EC%95%8A%EB%8A%94%EB%8D%B0-%EB%AC%B8%EC%A0%9C%EC%A0%90%EC%9D%84-%EB%AA%A8%EB%A5%B4%EA%B2%A0%EC%8A%B5%EB%8B%88%EB%8B%A4

이분의 질문과 같은 현상인거같은데 답이 없네요 ㅠ

0

169developer9973

혹시 docker 로 실행하실 때 mysql port 를 변경하신걸까요 ?
올려주신내용에서 port 만 3306 으로 변경하고 실행하니까 저는 정상적으로 실행이 되서요!

만약에 mysql port 를 변경하신게 의도하신거라면 오류나는 내용을 스크린샷 찍어서 올려주실 수 있으실까요?

0

169developer9973

jeonjihoon93 님 안녕하세요.

올려주신 깃헙링크를 들어가면 404가 뜨는데 주소가 맞을까요 ?

0

jeonjihoon93

수정했습니다. 지금은 될까요?

0

jeonjihoon93

https://github.com/wlgnss0912/stock

깃 허브에 올려서 공유 합니다.

레디선 테스트코드에서 채널이름은 없어도 되는건가요?

0

39

2

낙관적 락을 사용할 떄 차이점

0

118

2

동시성 검증 코드에 관한 문의

0

91

2

단일연산

0

69

2

낙관적락vs. 레디스락

0

106

2

안녕하세요. 레디슨 질문있습니다..!!

0

65

2

@Lock(OPTIMISTIC)이 필요한 이유

0

88

2

get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?

0

128

2

DataSource Hikari 사용 이유

0

144

2

saveAndFlush 사용 이유 문의

0

111

3

비관적 락 VS 네임드 락

0

158

3

application.yaml 에 redis 정보

0

97

2

왜 클래스 이름에 Facade 가 붙나요?

0

181

2

@Transactional 으로 인한 동시성 문제 발생 원인이 궁금합니다.

0

217

2

@modifying 이용한 동시성 제어

0

167

2

DB락과 분산락

0

260

2

NamedLock 테스트 실패

0

186

2

테스트에서 트랜잭션 어노테이션 질문 있습니다.

0

171

2

optimistic Lock 재시도 질문입니다.

0

229

2

낙관적 락 테스트 실패

0

239

2

오류?

0

1624

4

LettureLockStockFacadeTest에서 오류가 발생합니다.

1

267

2

Pessimistic Lock 전체 테스트 오류 문의

0

357

3

비관적 락 vs 레디스(Lettuce)락 비교 관련 질문

0

458

2