기타

웹 db설정

새로운 도전을 위한 한걸음 2015. 5. 10. 21:54

웹 db 설정(connection pool)

1). tomcat 운영 환경에서 설정이 실행되는가 ? 설정
2). eclipse 에서 설정가능한가 ?
  이클립스안에 Server 폴더안에 Tomcatv6.0 안에 server.xml
     <Context docBase="web2" path="/web2" reloadable="true" source="org.eclipse.jst.jee.server:web2">
      <Resource name="jdbc/myoracle" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
       url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"
              username="scott" password="tiger" maxActive="20" maxIdle="10"
              maxWait="-1"/>              //커넥션풀의 객수 //항시대기
      </Context>
    Connection pool을 20 개 만든다  

 Context initContext = new InitialContext();
 Context envContext  = (Context)initContext.lookup("java:/comp/env");
 DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
 Connection conn = ds.getConnection();

3). web이 아닌 일반 app로 실행가능한가 .  

범용 디비 설정시

  http://commons.apache.org/pool/
 pool 다운로드
 dbcp다운로드해서 import

 

Object pool


package com.pds;

 


import org.apache.commons.pool.*;
import org.apache.commons.pool.impl.*;
public class TestFactory implements PoolableObjectFactory {
 
 public static void main(String [] args) throws Exception{
  PoolableObjectFactory factory = new TestFactory();
  
  GenericObjectPool pool = new GenericObjectPool(factory);
  
  pool.setMaxActive(2);
  
  for(int i =0 ; i <100; i++){
   Employee obj = (Employee)pool.borrowObject();
   System.out.println(obj);
   pool.returnObject(obj);
  }
  
 }
 
 public void activateObject(Object arg0) throws Exception {// pool 에서 객체를 빌릴때 .. 사용 . 되는 메소드
  System.out.println("activeteObject" + arg0);
 }

 public void destroyObject(Object arg0) throws Exception {
  System.out.println("destroyObject" + arg0);
 }

 public Object makeObject() throws Exception {
  
  return new Employee();
 }
 

 public void passivateObject(Object arg0) throws Exception {
  System.out.println("passivateObject" + arg0);
 }

 public boolean validateObject(Object arg0) {
  System.out.println("validateObject" + arg0);
  return true;
 }

}