웹 & 프레임워크

Oracle등의 JNDI설정할때 Connection pool관련

늘근이 2014. 5. 14. 09:00

//DBUtil.java

 

Context initContext;

try {

initContext = new InitialContext(); //네이밍서비스를 받고있는 네이밍서비스의 시작점?

// Context envContext  = (Context)initContext.lookup("java:/comp/env"); //내부적으로 붙여주는 그런거

// ds = (DataSource)envContext.lookup("jdbc/oracle");

//-----------------------------------------------------------------위처럼짤수도 있고 아래처럼 짤수도 있음--------------

ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/oracle");

} catch (NamingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

Oracle connection pool을 설정하기 위해, Util 클래스에서 설정해주어야하는것.

네이밍서비스를 지원하는 JNDI스펙을 준수하는 놈들에서 다 쓸수있음.

특정서비스에 종속되지 않는 커넥션풀을 등록할수 있다. 이 작업은 한번만 하면 된다.

 

//   META-INF / context.xml

 

<Resource name="jdbc/oracle" auth="Container"

              type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"

              url="jdbc:oracle:thin:@127.0.0.1:1521:xe"

              username="scott" password="tiger" 

              maxActive="5" maxIdle="2" maxWait="-1"/>

 

 

//DBUtil.close(Connection conn)

close()에서도 문제가 되는데, 보통의 connection.close()를 그냥 그대로 써주면 알아서 release해줌.

인터페이스를 사용하는 장점이 이렇다.

 

GeneralConnection close()는 그냥 커넥션이 뿌셔지는데,

PooledConnection close()는 커넥션을 다시 재사용할수있게 release해주는 역할을 함.

 

 

 

톰캣, Documentation--------------------------------------------------------------

http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html

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

'웹 & 프레임워크' 카테고리의 다른 글

<비공개> ajax jquery 이용예제  (0) 2014.05.14
ajax를 이용한 form전송 serialize  (0) 2014.05.14
session invalidate  (0) 2014.05.14
getAttribute(), getParameter() 차이점  (0) 2014.05.14
Request, Session, Application  (0) 2014.05.14