커넥션 풀 기법은 데이터베이스와 연결된 커넥션을 미리 만들어 Pool속에 저장해 두고 필요할 때 커넥션을 풀에서 가져다 쓰고
다 쓴 후에 다시 풀에 반환하는 기법을 말한다.
ConnectionPool 사용시 이점
(1)풀 속에 커넥션이 미리 생성되어 있으므로 커넥션을 생성하는데 드는 연결시간이 소비되지 않는다.
(2)커넥션의 재사용이 가능하다.(전체적인 웹 어플리케이션 성능 및 처리량 증대)
1.DBCP[Database Connection Pool]
DBCP API를 사용하기 위한 과정은 아래와 같다.
(1)DBCP관련 jar 파일 및 JDBC 드라이버 설치
(2)커넥션 풀 설정 파일 초기화
(3)커넥션 풀 관련 드라이버 로딩
(4)커넥션 풀 사용
commons-dbcp-x.x.x.jar 파일과
commons-pool-x.x.jar 파일을 어플리케이션 하위의 WEB-INF\lib 디렉터리에 복사해 주어야 한다.
위 두개의 jar파일을 복사해 주었다면 커넥션 풀 설정 파일을 작성해야 한다.
/**** DBCPCONFIG.jocl ****/ <object class="org.apache.commons.dbcp.PoolableConnectionFactory" xmlns="http://apache.org/xml/xmlns/jakarta/commons/jocl"> <object class="org.apache.commons.dbcp.DriverManagerConnectionFactory"> <string value="jdbc:mysql://localhost:3306/DBNAME?useUnicode=true&characterEncoding=euckr"/> <string value="USER"/> <string value="PASSWORD"/> </object> <object class="org.apache.commons.pool.impl.GenericObjectPool"> <object class="org.apache.commons.pool.PoolableObjectFactory" null="true" /> </object> <object class="org.apache.commons.pool.KeyedObjectPoolFactory" null="true"/> <string null="true"/> //커넥션 유효성 검사 <boolean value="false"/> //읽기전용으로 할 것인지 여부 <boolean value="true"/> //커넥션을 오토커밋 모드로 할 것인지 여부 </object>
위의 파일은 DBCPCONFIG.jocl 파일로써 DBCP설정 파일의 예이다.
이 DBCP 커넥션 풀 설정 파일은 XML문서로 처리되는 점에 유의해야한다.
구문중 &(엠퍼샌드)를 & 로 표기한 내용이 있는데 이것은 xml에서의 표기방식이다.
DBCP API는 웹 어플리케이션 클래스 패스로부터 jocl설정 파일을 검색하므로 WEB-INF\classes 디렉터리에 넣어주어야 한다.
(eclipse를 통해 개발할 때에는 src 폴더 하위에 넣어주면 된다.)
2.커넥션 풀 초기화
커넥션 풀을 초기화 하기 위해선 DBMS에 연결할 JDBC드라이버와 DBCP API의 JDBC드라이버가 로딩 되어야 한다.
<% Class.forName("com.mysql.jdbc.Driver"); Class.forName("org.apache.commons.dbcp.PoolingDriver"); %>
MySQL을 사용하는 경우의 JDBC로딩과 DBCP JDBC드라이버 로딩을 보여주고 있다.
3.커넥션 사용
DBCP를 통해 커넥션을 생성할 때 JDBC URL이 조금 다른 것 외엔 DriverManager를 통해 커넥션을 생성하고 이후 사용하는 것은
동일하다.
jdbc:apache:commons:dbcp:/DBCPCONFIG
DriverManager.getConnection() 메서드를 통해 jdbcurl을 매개변수로 커넥션을 생성한다.
JDBC 데이터베이스 프로그래밍 -> http://hyunc87.tistory.com/36
다른점은 DBCP설정파일은 DBCPCONFIG.jocl 의 확장자를 뺀 설정파일 이름이 풀이름으로 사용된다는 것이다.
<% Connection conn = DriverManager.getConnection("jdbc:apache:commons:dbcp:/DBCPCONFIG") %>
DBCP를 통해 커넥션을 얻어오는 구문은 위와 같다.
'web > jsp' 카테고리의 다른 글
JSP JDBC 데이터베이스 프로그래밍 (0) | 2014.09.08 |
---|---|
JSP Session 세션 (0) | 2014.09.08 |
JSP Cookie 쿠키 (0) | 2014.09.08 |
JSP <jsp:forward> 액션 태그, JSP 페이지 이동 (0) | 2014.09.08 |
JSP <jsp:include> 액션태그, include디렉티브, 코드 자동포함 (0) | 2014.09.08 |