본문으로 바로가기

톰캣 커넥션 풀(DBCP) 관련 jsp/eclipse tomcat dbcp 설정

2009.03.02 03:53 | WEB SERVICE | hyungsekk

http://kr.blog.yahoo.com/hyungsekk/1436 주소복사

<!-- Contents -->

톰캣 커넥션 풀(DBCP) 관련 파일들과 설정
 
주소 : http://commons.apache.org/downloads/index.html
 

 

이클립스 WTP 버젼에서 "Dynamic Web Project" 로 프로젝트를 만들었을 경우

프로젝트 이름을 webtest 라고  했다면

webtest -> WebContent -> META-INF 에 context.xml 을 만들고

아래 내용을 입력하면 커넥션 풀을 사용할 수 있다.

 

이때 반드시 톰캣 설치 폴더 -> common -> lib 에

(예 : mysql-connector-java-5.0.7-bin.jar)

MySQL JDBC 드라이버 파일을 복사해 줘야

톰캣이 JDBC 드라이버를 인식할 수 있다.

 

---------------------------------

context.xml

---------------------------------

<?xml version="1.0" ?>

<Context docBase="webtest"
    path="/webtest"
    reloadable="true">

  <Resource name="jdbc/jsptest"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    loginTimeout="10"
    maxWait="5000"
    username="root"
    password="1234"
    testOnBorrow="true"
    url="jdbc:mysql://localhost:3306/jsptest?autoReconnect=true" />


</Context>

 

------------------------------------

설명

------------------------------------

maxWait : 커넥션 반환까지 기다리는 최대 시간 ( 단위 : 천분의 일초 )

testOnBorrow : 커넥션 풀에서 커넥션을 가져올 때 유효한지 검사한다.

 

============================

 

오라클의 경우

 

반드시 톰캣 설치 폴더 -> common -> lib 에

(예 : ojdbc14.jar)

오라클 JDBC 드라이버 파일을 복사해 줘야 톰캣이 JDBC 드라이버를 인식할 수 있다.

 

---------------------------------

context.xml

---------------------------------

<?xml version="1.0" ?>

<Context docBase="orapool"
    path="/orapool"
    reloadable="true">


<Resource name="jdbc/ora"
   auth="Container"
   type="oracle.jdbc.pool.OracleDataSource"
   driverClassName="oracle.jdbc.driver.OracleDriver"
   factory="oracle.jdbc.pool.OracleDataSourceFactory"
   url="jdbc:oracle:thin:@localhost:1521:ora"
   user="scott"
   password="tiger"
   maxActive="20"
   maxIdle="10"
   maxWait="-1" />

</Context>

 

---------------------------------

orapool.jsp

---------------------------------

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.sql.*, javax.sql.*, javax.naming.*" %>
<%@ page import="oracle.jdbc.pool.OracleDataSource" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%

Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
OracleDataSource ds = (OracleDataSource) envContext.lookup("jdbc/ora92");
Connection conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement("select * from tab");
ResultSet rs = pstmt.executeQuery();
while(rs.next()) {
 out.println(rs.getString(1) + " : " + rs.getString(2) + "<br>");
}
%>
</body>
</html>


 

==================================

또 다른 방법 : server.xml 과 web.xml 을 수정

==================================

---------------------

server.xml 에 내용 추가

---------------------

1. <GlobalNamingResources> 와 </GlobalNamingResources> 사이에 다음의 내용을 추가한다.

 

  <Resource

    name="jdbc/oracle"

    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    url="jdbc:oracle:thin:@127.0.0.1:1521:oracle"

    username="scott"
    password="tiger"

    maxActive="20"

    maxIdle="10"

    maxWait="-1" />

 

2. <Host> 와 </Host> 사이에 다음 내용 추가

    <Context

      docBase="webtest"

      path="/webtest"
      reloadable="true">
        <Resource

           name="jdbc/oracle"

           auth="Container"
           type="javax.sql.DataSource"
           driverClassName="oracle.jdbc.driver.OracleDriver"
           url="jdbc:oracle:thin:@127.0.0.1:1521:oracle"
           username="scott"

           password="tiger"

           maxActive="20"

           maxIdle="10"
           maxWait="-1" />
    </Context>

 

---------------------

web.xml 에 내용 추가

---------------------

 <resource-ref>
  <description>Oracle Datasource example</description>
  <res-ref-name>jdbc/oracle</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

 

 

'Programming > WAS' 카테고리의 다른 글

tomcat PermGen space 에러 날경우 대처법  (0) 2009.10.16