본문 바로가기

Tomcat/Tomcat 7 DBCP

Tomcat 7 DBCP Example

참고: http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html


테스트환경: Java SE 1.7, Tomcat 7, Oracle 12g


web.xml (Not Required)

<resource-ref>

    <description>MyDataSource</description>

    <res-ref-name>jdbc/MyDataSource</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

</resource-ref>


META-INF/context.xml

<Context>

  <Resource name="jdbc/MyDataSource" auth="Container" type="javax.sql.DataSource"

               maxActive="100" maxIdle="30" maxWait="10000"

               username="abc" password="abc" driverClassName="oracle.jdbc.OracleDriver"

               url="jdbc:oracle:thin:@123.123.123.123:1521:xe"/>

</Context>


context.xml 에서 자주 사용되는 주요 속성의 의미

maxActive : 동시 사용될 수 있는 최대 Connection 수

maxWait : Connection Pool 에 저장된 유휴 Connection 이 고갈되었을 경우 Connection 을 사용하기 위해 기다려야 하는 최대 시간(1/1000초 단위, 음수인 경우 무한대기)

maxIdle : Connection Pool 에 저장될 수 있는 최대 유휴 Connection 수, 음수인 경우 무제한

minIdle : Connection Pool 에 저장될 수 있는 유휴 Connection 의 최소 수, 0 일 경우 Connection 이 필요하면 다시 생성한다는 의미

testOnBorrow : Connection Pool 로부터 Connection 을 가져올 때 유효한 Connection 인지 검사

testOnReturn : Connection Pool 에 Connection 을 반납할 때 유효한 Connection 인지 검사


JSP or Servlet

Context initCtx = new InitialContext();

DataSource ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/MyDataSource");

System.err.println("DS: " + ds.toString());

Connection conn = ds.getConnection();