본문 바로가기
강의 정리/스프링 부트와 JPA활용 2

3. OSIV와 성능 최적화

by 이석준석이 2021. 1. 9.

Open Session In View : 하이버네이트

Open EntityManager In View : JPA


spring.jpa.open-inview is enabled by default

  • spring.jpa.open-in-view : true (default)

OSIV ON (spring.jpa.open-in-view : true)

 

언제 JPA 가 DB connection 을 가져오는가?

  • DB Transaction이 시작할 때, JPA 가 database connection 을 가져온다.

언제 JPA 가 DB connection 을 반환하는가?

  • osiv가 켜져있으면, 유저한테 response 가 나간 뒤에 반환한다.

 

단점

  • 너무 오랫동안 DB 커넥션을 갖고있는다.
    • 실시간 트래픽이 중요한 애플리케이션에서는 DB connection이 모자랄 수 있다.

OSIV OFF (spring.jpa.open-in-view : false)

 

언제 JPA 가 DB connection 을 가져오는가?

  • DB Transaction이 시작할 때, JPA 가 database connection 을 가져온다.

언제 JPA 가 DB connection 을 반환하는가?

  • DB Transaction이 끝나면 반환한다.

 

단점

  • 트랜잭션이 끝나기전에 모든 지연로직을 호출해둬야 한다.