일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 접근제어자
- StringBuffer클래스
- Interface
- try-catch
- StringBuffer
- 내장 객체 영역
- 상속
- 다형성
- 객체지향
- JSP
- DB
- I/O
- 제어자
- Connection
- ToString
- 입출력
- 람다식
- for문
- 에러
- java
- 커넥션 풀
- 인터페이스
- 객체
- 예외처리
- 예외
- File입출력
- 메서드
- 배열
- array
- 변수
Archives
- Today
- Total
ksouth9
Connection Pool(커넥션 풀) 설정 본문
톰캣에서 커넥션 풀을 사용할 수 있도록 server.xml과 context.xml 두 개의 파일을 수정해야한다.
server.xml에 커넥션 풀을 전역 자원으로 선언하고, context.xml에서는 참조하는 링크를 추가한다.
server.xml
server.xml - 서버 전체와 관련한 설정을 담고있다.
- 이클립스에서 Servers 폴더안의 server.xml 파일을 선택한다.
- <GlobalNamingResources> 엘리먼트를 찾는다.
<GlobalNamingResources>는 전역 자원을 등록하는 영역이다. 따라서 이 엘리먼트 안에 등록한 자원은 이 서버에서 구동되는 모든 웹 애플리케이션에서 사용할 수 있다.
- driverClassName : JDBC 드라이버의 클래스명
- type : 데이터소스로 사용할 클래스명
- initialSize : 풀의 최초 초기화 과정에서 미리 만들어놓을 연결의 개수(기본값 0)
- minIdle : 최소한으로 유지할 연결 개수(기본값 0)
- maxTotal : 동시에 사용할 수 있는 최대 연결 개수(기본값 8)
- maxIdle : 풀에 반납할 때 최대로 유지될 수 있는 연결 개수(기본값 8)
- maxWaitMillis : 새로운 요청이 들어왔을 때 얼만큼 대기할지를 밀리초 단위로 기술
- url : DB 연결을 위한 URL
- name : 생성할 자원(커넥션 풀)의 이름
- username : 계정 아이디
- password : 계정 패스워드
Oracle DB 기준
<GlobalNamingResources>
...
<Resource auth="Container"
driverClassName="oracle.jdbc.OracleDriver"
type="javax.sql.DataSource"
initialSize="0"
minIdle="5"
maxTotal="20"
maxIdle="20"
maxWaitMillis="5000"
url="jdbc:oracle:thin:@localhost:1521:xe"
name="dbcp_myoracle"
username="root"
password="1234" />
</GlobalNamingResources>
MySQL DB 기준
<GlobalNamingResources>
...
<Resource auth="Container"
driverClassName="com.mysql.cj.jdbc.Driver"
type="javax.sql.DataSource"
initialSize="0"
minIdle="5"
maxTotal="20"
maxIdle="20"
maxWaitMillis="5000"
url="jdbc:mysql://localhost:3306/스키마name"
name="dbcp_mysql"
username="root"
password="1234" />
</GlobalNamingResources>
type 속성으로 지정한 javax.sql.DataSource는 물리적인 데이터소스와의 연결을 생성해주는 자바 표준 인터페이스이다.
driverClassName 속성으로 지정한 oracle.jdbc.OracleDriver / com.mysql.cj.jdbc.Driver 클래스가 이 인터페이스를 구현하고 있다.
즉, 오라클, MySQL이 제공하는 OracleDriver, MySQLDriver 클래스가 커넥션 풀기능을 구현하며, 사용자는 자바 표준 인터페이스인 DataSource 형태로 받아 이용하는 것이다.
context.xml
context.xml - 각각의 웹 애플리케이션마다 하나씩 주어지는 자원을 설정한다.
- 이클립스에서 Servers 폴더안의 context.xml 파일을 선택한다.
- <GlobalNamingResources> 엘리먼트를 찾는다.
<Context>
...
<ResourceLink global=생성할 자원(커넥션 풀)의 이름 name=생성할 자원(커넥션 풀)의 이름
type=데이터소스로 사용할 클래스명 />
</Context>
예시
<Context>
...
<ResourceLink global="dbcp_myoracle" name="dbcp_myoracle"
type="javax.sql.DataSource" />
</Context>
이 엘리먼트에는 풀의 이름과 데이터소스로 사용할 클래스명을 기술한다.
여기서 global 속성에는 앞서 server.xml에서 등록한 커넥션 풀 전역 자원의 이름을 명시한다.
'Web > JSP' 카테고리의 다른 글
Connection Pool(커넥션 풀) (0) | 2022.12.12 |
---|---|
JSP DB Connection (0) | 2022.08.01 |
DAO(Data Access Object) (0) | 2022.07.03 |
DTO(Data Transfer Object) (0) | 2022.06.16 |
MVC 패턴 (0) | 2022.06.16 |