티스토리 뷰
데이터 베이스와 통신하는 자원을 효율적으로 관리하기 위한 방법.
1. 커넥션 풀 이란?
- 웹서버와 DB의 작업(커넥션 DB connection, Data handing, DB connection Close)에는 자원이 소모되고, 많은 작업을 처리하면 처리할 수록 부화가 걸릴 가능성이 있음.
- 웹서버와 DB와의 작업에는 반복되는 요소가 있기 때문에, 미리 작업을 처리 할 수 있도록 준비하면 퍼포먼스가 향상됨.
- 톰켓에서 커넥션을 미리 만들어놓고, 웹서버가 필요할 때 사용하고(rent), 반환(return)하는 과정을 통해 기능을 증가시키는 기법 = Connection Pool

2. 커넥션 풀 설정.
- auth="Container"
-> 현재 사용하고 있는 tomcat 컨테이너를 커넥션 풀로 사용하겠다고 명시함.
- driverClassName, url, username, password
-> JDBC코드에 들어가는 기본 코드들을 명시 (인증)함으로서 tomcat 컨테이너가 미리 커넥션을 맺어놓음.
- name="jdbc/Oracle11g"
-> tocat이 맺어놓은 커넥션을 Java코드가 사용하기 위해 요청을 할때, name="(값)"을 사용하는데 (값)은 임의로 설정할 수 있음(보통은 'jdbc/DB명' 으로 설정).
- type="javax.sql.DataSource"
-> 컨테이너가 커넥션풀을 맺기 위해서는 객체가 필요함. "javax.sql.DataSource" API를 사용하여 객체 이용
- maxActive="4"
-> 커넥션풀 4개를 만든다는 의미, 자원이 4개보다 더 소모됐을 때는 바로 에러를 발생시키는 것이 아니라 컨테이너가 자동적으로 1개씩 사이즈를 늘려줌.
- maxWait="10000"
-> 추가적으로 컨테이너 1개를 만들때 걸리는 시간, 리소스가 없어서 컨테이너를 더 추가하지 못한다면 에러를 발생시킴.

3. 커넥션 풀 구현
- Java코드에서 커넥션을 만들 필요가 없음.
-> 직접 Java코드에서 DB에 Access할 필요가 없어짐 (container에 인증코드를 명시했기 때문에)
- Context context = new InitialContext(); dataSource = (DataSource)context.lookup("name 값");
-> DB를 빌려오는 코드 lookup을 통해 container에 설정한 name을 찾아 커넥션풀을 rent함

*자바 주석처리 한꺼번에 하는법
'JSP > 인프런 JSP' 카테고리의 다른 글
MVC패턴을 이용한 게시판 만들기 -1 (0) | 2020.03.01 |
---|---|
21. 파일 업로드 (0) | 2020.03.01 |
18. DAO와 DTO (2) | 2020.02.23 |
17. JDBC (0) | 2020.02.21 |
16. 데이터베이스 -1 (0) | 2020.02.21 |
- 20200427
- 20200421
- 20200317
- 20201204
- 20200804
- 20200424
- 20200403
- 20200428
- 20200622
- 20200420
- likelion
- 20200425
- 20200512
- 20200502
- 20200319
- 20200429
- 20200413
- 20200503
- 20200406
- chapter8
- chapter7
- 20200423
- 20200624
- 20200504
- 생활코딩리눅스
- 20200330
- 20200415
- 20200510
- 백준
- 20200417
- Total
- Today
- Yesterday