티스토리 뷰

Tomcat DB Connection Pool 설정하는 법에 대해서 알아보도록 하겠습니다.

 

연동 환경

Tomcat : 7.0

MySQL : 5.5

 

 step1. mysql-connector-java download

http://dev.mysql.com/downloads/connector/j/   접속하여 connector 다운로드

 

step 2. 압축해제 및 복사

$ tar xvfz mysql-connector-java-5.1.21

$ cp mysql-connector-java-5.1.21-bin.jar /usr/local/apache-tomcat-7.0.29/lib/

 

step 3. Tomcat DBCP 설정

$CATALINA_HOME/conf/context.xml

<!--
    maxActive : 최대 동시 대여 가능 커넥션수
    maxIdle : 최소 보유 커넥션수
    maxWait : 최대 대기 시간 -> 넘겼는데도 빈 커넥션이 없으면 Exception (1=5초, 180=15분)
    removeAbandoned : (true) 대여시간 초과했는데 반납 안된 커넥션 처리
    removeAbandonedTimeout : 대여시간 설정 ( 1=5초 60=5분 )
    logAbandoned : (true) 삭제시에 로그를 남길 것인가?
    validationQuery : 커넥션이 살아 있는지 체크 하는 쿼리로 오라클의 경우에는 "select 1 from dual", MySQL의 경우에는 "select 1"
   testWhileIdle : (true) 커넥션에 아무런 데이터 송수신이 없을 경우 테스트를 할지 여부를 결정합니다.
    timeBetweenEvictionRunsMillis : 커넥션이 쉬고 있을 때 커넥션 체크 쿼리를 실행하는 시간 간격을 설정합니다. 밀리 세컨드로 설정하며, 저보통 60000(1분)을 줍니다.
-->

<Resource name="jdbc/rockseaDB"
              auth="Container"
              type="javax.sql.DataSource"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              testWhileIdle="true"
              testOnBorrow="true"
              testOnReturn="false"
              validationQuery="SELECT 1"
              validationInterval="30000"
              timeBetweenEvictionRunsMillis="30000"
              maxActive="100"
              minIdle="10"
              maxWait="10000"
              initialSize="10"
              removeAbandonedTimeout="60"
              removeAbandoned="true"
              logAbandoned="true"
              minEvictableIdleTimeMillis="30000"
              jmxEnabled="true"
              jdbcInterceptors=
"org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
              username="rocksea"
              password="1234"
              driverClassName="com.mysql.jdbc.Driver"
              poolPreparedStatements="true"
              url="jdbc:mysql://localhost:3306/rocksea"/>

 

step 4. DB 연동 Test Code 작성

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
    Connection conn=null;
    try{
        Context init = new InitialContext();
        DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/rockseaDB");
        conn = ds.getConnection();
        out.println("Success!!!");
    }catch(Exception e){
        out.println("Failure!!!");
        e.printStackTrace();
    }

%>

 

  결과화면

이상으로 tomcat + mysql 연동 포스팅을 마치도록 하겠습니다.

by rocksea.

댓글