Spring DB : 데이터베이스 연결 구조와 DB 세션

    이 글은 인프런 김영한님의 강의를 복습하며 작성한 글입니다.

    데이터베이스 연결 구조와 DB 세션

    사용자는 WAS, DB 접근툴을 통해 DB에 접근할 수 있다. 사용자는 DB 서버에 연결 요청을 하고, WAS는 이를 대신해서 DB와 커넥션을 연결해준다. WAS의 커넥션 / DB의 커넥션이 연결되면 DB는 세션을 하나 만들어둔다. 일단 커넥션을 통해 세션이 생성되면 WAS에서 DB로 오는 모든 요청은 DB 세션이 처리하게 된다. 

    사용자는 DB 세션을 통해 트랜잭션을 시작하고, 트랜잭션을 종료할 수 있다. 또한, 사용자는 DB 세션을 통해 SQL을 실행할 수 있다. 사용자가 커넥션을 닫거나, DB 관리가 세션을 강제 종료 하면 DB세션은 종료된다. 만약 사용자가 사용하던 커넥션이 커녁센 풀에서 온 것이라 커넥션 풀에 반환하는 경우, 커넥션은 살아있고 따라서 DB 세션 역시 살아있게 된다. 

     

    커넥션 풀과 다중 커넥션 

    커넥션 풀은 기본적으로 여러 개의 커넥션을 가지고 있다. 이 커넥션은 각각 DB 세션을 가지고 있다. 사용자는 요청할 때 마다, 서로 다른 커넥션을 커넥션 풀로부터 제공을 받는다. 따라서 서로 다른 세션으로 DB에 접근하기 때문에 DB 세션의 동시성 문제는 제거된다. 

    'Spring > Spring DB' 카테고리의 다른 글

    Spring DB : 자동 / 수동 Commit  (0) 2022.04.28
    Spring DB : DB 트랜잭션의 이해 (1)  (0) 2022.04.28
    Spring DB : 트랜잭션 개념  (0) 2022.04.28
    Spring DB : DataSource 적용  (0) 2022.04.28
    Spring DB : DataSource 이해  (0) 2022.04.28

    댓글

    Designed by JB FACTORY