0. 작성자 개발 환경

- OS : Window 7 (64bit)

- Eclipse : Kepler

- Tomcat : 6

- Oracle : 10g


1. 커넥션풀(DBCP) 사용 이유

- JDBC를 통하여 DB에 연결하기 위해서는 드라이버(Driver)를 로드하고 커넥션(connection) 객체를 받아와야 한다.

- JDBC를 사용하면 사용자가 요청을 할 때마다 매번 드라이버를 로드하고 커넥션 객체를 생성하여 연결하고 종료하기 때문에 매우 비효율적이다.

- 이런 문제를 해결하기 위해서 커넥션풀(DBCP)를 사용한다.


2. 커넥션풀(DBCP)

- 웹 컨테이너가 실행되면서 커넥션(connection) 객체를 미리 풀(pool)에 생성해 둡니다.

- DB와 연결된 커넥션(connection)을 미리 생성해서 풀(pool) 속에 저장해 두고 있다가 필요할 때에 가져다 쓰고 반환한다.

- 미리 생성해두기 때문에 데이터베이스에 부하를 줄이고 유동적으로 연결을 관리 할 수 있다.


3. 톰캣 커넥션풀(DBCP) 문서

http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html


4. DBCP 라이브러리 추가

- 이전버전 commons-dbcp-1.4jar, commons-pool-1.6.jar, commons-collections-3.2.1-bin.zip 3개의 라이브러리는 톰캣 6.0 부터 tomcat-dbcp.jar 파일로 하나로 통합되었다.

- 톰캣설치폴더 lib 폴더에 있는 tomcat-dbcp.jar 파일을 웹프로젝트\WebContent\WEB-INF\lib 경로에 복사한다.



5. DB 라이브러리 추가(오라클 - ojdbc.jar)

- 오라클 드라이버 다운로드 참조 : 2013/10/01 - [Oracle/Install] - 오라클(Oracle) 정식 드라이버(Driver) 받는 곳 - ojdbc.jar


6. \Servers\Tomcat v6.0 Server at localhost-config\context.xml 파일에 Resource 태그 추가


7. 웹프로젝트\WebContent\WEB-INF\web.xml 파일에 <resource-ref> 태그 추가

- <res-ref-name> 태그의 이름은 contex.xml 파일 <resource>태그의 name 속성의 이름과 같아야한다.

- 7번 작업은 톰캣 6.0 이상부터는 생략 가능하다.


8. JAVA 코드로 연결

- 서블릿에서 작성한다. (MVC 구조로 구현할 경우)

- 예외를 가지고 있으므로 예외처리를 해준다.

import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class DBCP {
	/*
	 * 이 코드를 아래와 같이 줄여서 작성가능하다.
	Context initContext = new InitialContext();
	Context envContext  = (Context) initContext.lookup("java:/comp/env");
	DataSource dataSource = (DataSource) envContext.lookup("jdbc/oracle");
	Connection conn = dataSource.getConnection();
	*/
	
	Context context = new InitialContext();
	DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/oracle");
	Connection con = dataSource.getConnection();		
}

9. JNDI(Java Naming and Directory Interface) 

- 서비스가 다른 서비스를 탐색할 때 유용하게 사용된다. (분산된 자원)

- 분산된 자원 끼리의 탐색을 원할하게 하기 위한 type casting 임. (DNS 도 이에 속함) 

- JNDI에 설정해 놓았다는것은 Context.xml에 리소스를 생성해놓은 것을 말한다.


10. servers > context.xml 파일 복사

- 서버가 변경되거나 서버에서 프로젝트를 제거하는 경우에 다시 추가해서 실행하는 번거로움이 있다.

\Servers\Tomcat v6.0 Server at localhost-config\context.xml 파일을 복사한다.

웹프로젝트\WebContent\WEB-INF\ 디렉터리에 붙여넣기 한다.


+ Recent posts