ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JPA OSIV (open-in-view)
    JPA 2023. 12. 14. 22:20

    spring.jpa.open-in-view : true

     

    service 계층에서 transaction 시작하는 시점에서 db connection 가져오는데

    -> api 가 끝날 때 까지 반환을 안 함 

    -> 사유 = 프록시 객체를 가져올 때를 대비해서 db connection 이 살아있어야 함. (member.getName() 처럼)

     

    즉, 영속성 컨텍스트가 끝까지 살아있어야 함

     

    => 실시간 트래픽이 중요한 어플리케이션인 경우에 커넥션이 모자랄 수 있다 = 장애

     

     

    spring.jpa.open-in-view : false

     

    transaction 이 끝날 때 까지만 DB Connection 유지함

    -> 모든 지연로딩은 트랜잭션 안에서 처리해야 함 ! 

     

    이 복잡성을 관리하는 좋은 방법

    : CQRS 기법 (command와 query 를 분리)

     

     

Designed by Tistory.