-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
엔티티매니저 동시성 문제
20.11.17 22:38 작성 조회수 206
0
강의 잘듣고 있습니다.
1. 엔티티 매니저를 사용할 시에, 쓰레드가 안전하지 않다, 동시성 문제가 발생할 수 있다. 라는 내용을 책에서 본적이 있습니다. 뭔가 동시성 문제가 발생한다면,
한개의 리퀘스트에서 생성하는 1차캐시 내에서 동시성 문제가 발생하진 않을 것 같고, 애플리케이션이 동작하는 동안 여러 클라이언트가 접근할 수 있는, 2차캐시에서 발생할 것 같다는 생각이 들었습니다. 혹시 제 생각이 맞을까요? ㅎㅎ
답변을 작성해보세요.
1
1
김영한
지식공유자2020.11.17
안녕하세요. 석민님 좋은 질문입니다.
실무에서는 JPA를 단독으로 사용하지 않고, 스프링 프레임워크와 함께 사용합니다.
스프링 프레임워크는 엔티티 매니저를 쓰레드 안전하게 동작하도록 지원해줍니다.
(쉽게 이야기해서 여러 고객이 동시에 요청해도, 각 요청 트랜잭션마다 서로 다른 엔티티 매니저를 할당합니다.)
따라서 실무에서 엔티티 매니저에 동시성 문제가 발생하는 일은 거의 없습니다.
반면에 스프링을 사용하지 않고, 엔티티 매니저를 직접 생성하고 관리할 때는 동시성 문제가 발생할 수 있습니다. 하나의 엔티티 매니저를 생성해서 공유변수 같은 곳에 넣어버리면 큰일 나는 것이지요.
여기서 설명드린 내용과 2차캐시는 관련이 없습니다.
감사합니다.
0
답변 3