Spring DB : 데이터베이스 연결 구조와 DB 세션
- Spring/Spring DB
- 2022. 4. 28.
이 글은 인프런 김영한님의 강의를 복습하며 작성한 글입니다.
데이터베이스 연결 구조와 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 |