Jul 24 2007
[JAVA]Apache Commons DBCP - Application에서 DB Connection Pool 관리하기
DBMS와 연동하는 프로그램이라면 DB 접속/해제에 드는 리소스 소모가 크기 때문에 커넥션 풀을 사용하여 DBMS와 연동하게 됩니다.
JSP/Servlet에서는 WAS에서 제공하는 데이터 소스를 이용하면 간단하면서도 강력하게 해결할 수 있으며, 웹 상에 상당히 많은 자료들이 이를 다루고 있습니다. 본 포스트는 일반 Java Application에서 DBCP를 사용하여 커넥션 풀을 사용하는 방법만 간단하게 다루고자 합니다.
우선 Apache Commons DBCP(이하 DBCP)는 아래 세 가지의 라이브러리 파일이 필요합니다.
(파일명을 누르시면 다운로드 페이지로 이동합니다)
아래의 파일들을 클래스 패스에 추가해 주시면 준비물은 다 갖추신 것입니다.
이제 아래의 예제를 보아 주시기 바랍니다.
아래의 예제들은 DBCP 사이트에 있는 예제입니다.
(해당 소스는 서브버전으로 관리되어 있고, VIEWVC로 웹 상에 노출되고 있으며, VIEW 페이지를 링크했습니다.)
@ BasicDataSourceExample.java
@ ManualPoolingDataSourceExample.java
@ ManualPoolingDriverExample.java
가장 빠르고 쉽게 커넥션 풀을 사용할 수 있는 방법은 첫 번째 예제에 제시되어 있습니다.
바로 BasicDataSource를 사용하는 것인데, 제공하는 예제가 상당히 간단할 정도로 설정 방법도 간단합니다.
아래와 같이 몇 라인이면 설정이 완료되고,
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(…);
ds.setUrl(…);
ds.setUserName(…);
ds.setPassword(…);
아래와 같은 방법으로 Connection 객체를 커넥션 풀에서 얻어낼 수 있습니다.
Connection conn = ds.getConnection();
이후로는 일반 Connection 객체를 사용하듯이 쓰면 됩니다. close() 시에 다른 클래스를 경유해야 한다거나 하는 것도 없습니다. BasicDataSource를 close 할 수는 있지만 (예제를 미루어 보아)꼭 해야 되는 것도 아닌 것으로 보입니다.
ASF(Apache Software Foundation)… 역시 Java 프로그래머라면 한번쯤 도움을 받을 곳인 것 같네요.
C/C++를 회사에서 주력으로 사용하고 있긴 하지만, Java로 코딩할 때 짬짬이 잘 정리해야겠습니다.
