개발 무지렁이

[JDBC] DBCP(DataBase Connection Pool)과 WAS 본문

Backend/JDBC

[JDBC] DBCP(DataBase Connection Pool)과 WAS

Gaejirang-e 2023. 4. 23. 17:27

DBCP


WAS(Tomcat)가 이미 다 만들어 제공
일정량의 커넥션을 미리 확보 (Pool⛱️에 저장)
사용자와의 연결이 종료되면 Pool⛱️에 반환하여 보관한다.

[webapp/META-INF/context.xml]

  <Context>
      <!-- DBCP기술 설정 -->
    <Resource name="jdbc/myoracle" 
              auth="Container"
              type="javax.sql.DataSource" 
              driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@127.0.0.1:1521:xe"
              username="c##scott" 
              password="tiger" 
              maxTotal="20" 
              maxIdle="10"
              maxWaitMillis="-1"/>
  </Context>  

[DBManager.java]

  public class DBManager {
      private static DataSource ds;
    /**
     * 로드
     */
    static {
          try {
              Context initContext = new InitialContext();
              Context envContext = (Context)initContext.lookup("java:/comp/env");
              ds = (DataSource)envContext.lookup("jdbc/myoracle");
          } catch(Exception e) {
              e.printStackTrace();
          }
      }
      /** 
       * 연결
       */
      public static Connection getConnection() throws SQLException {
          return ds.getConnection();
      }
      //... 이하 생략
  }

Tistory's Card

Comments