웹 db설정
웹 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;
}
}