참고: 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();