Upload
gyuseok-lee
View
230
Download
1
Embed Size (px)
DESCRIPTION
톰캣과 DB를 연동하는 방법에 대해 알아봅니다. 요즘에는 ibatis나 mybatis를 사용하시는 분들이 있지만 기본적인 톰캣의 DB연동 방법에 대해 알아두시는 것도 좋겠지요? Connection Pool 의 모니터링 부분은 차후 추가할 예정입니다.
Citation preview
.SpecialMM
{톰캣: T o m c a t }
JDBC Connection Pool
DB 연동 예제
DB 연동 설정값
JNDI Lookup C H A P T E R # 6
D B 연동
JDBC Connection Pool
JDBC Connection Pool
JVMDB
LISTENER
CONNECT ION POOL
JDBC Connection Pool
JVMDB
LISTENER
JDBC Connection Pool
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" username="oracle" password="oracle" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@address:1521:SID" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" maxActive="25" maxIdle="10" maxWait="-1" />
context.xml
DB 연동 예제
DB 연동 예제
JDBC Driver
s e t e nv
l i b
#JDBC Driver Classpath CLASSPATH=/app/lib/jdbc.jar
CATALINA_HOME/common/lib/jdbc.jar or CATALINA_HOME/shared/lib/jdbc.jar (tomcat 5.5) !
CATALINA_HOME/lib/jdbc.jar (tomcat 6+)
DB 연동 예제
MySQL /
C o n n e c t o r / J
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://ipaddress:3306/javatest" maxActive="25" maxIdle="10" maxWait="-1" />
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" username="oracle" password="oracle" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@ipaddress:1521:SID" maxActive="25" maxIdle="10" maxWait="-1" />
DB 연동 예제
ORACLE D a t aBa s e
/ c l a s s e s 1 2 . j a r o j d b c# . j a r
DB 연동 예제
Pos t g r eSQL /
JDBC #
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" username="myuser" password="mypasswd" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://ipaddress:5432/mydb" maxActive="25" maxIdle="10" maxWait="-1" />
DB 연동 설정값
DB 연동 설정값
ATTR IBUTE DESCR IPT ION DEFAULT
maxAc t i v e 최대 Co n n e c t i o n 값 100
max I d l e I d l e C o n n e c t i o n 최대 허용치 maxAc t i v e
m i n I d l e I d l e C o n n e c t i o n 최소 허용치 i n i t i a l S i z e
i n i t i a l S i z e C o n n e c t i o n P o o l의 최초 생성 개수 10
maxWa i t C o n n e c t i o n을 얻기위해 대기하는 최대 시간 30000 (m s )
http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
DB 연동 설정값
ATTR IBUTE DESCR IPT ION DEFAULT
r emoveAban d o n e d 특정시간 동안 사용하지 않는 Co n n e c t i o n 반환 f a l s e
r emoveAban d o n e dT im e o u t r emoveAban d o n e d가 동작하는데 소요되는 시간 60 ( s )
l o gA b a n d o n e d Co n n e c t i o n이 r emove될 때 l o g에 기록 f a l s e
t e s tOnBo r r ow g e tC o n n e c t i o n ( )이 수행될 때 유효성 테스트 f a l s e
va l i d a t i o nQu e ry테스트를 위한 쿼리 SELET 1 ( my s q l /MSSq l ) s e l e c t 1 f r om d u a l ( o r a c l e )
n u l l
http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
DB 연동 설정값
t imeBe twe e nEv i c t i o nRun sM i l l i s > 0
&& r emoveAban d o n e d = t r u e && r emoveAban d o n e dT im e o u t > 0
&& s u s p e c tT im e o u t > 0
&& t e s tWh i l e I d l e = t r u e && v a l i d a t i o nQu e ry ! = n u l l
&& m i n E n i c t a b l e I d l eT im eM i l l i s > 0
JNDI Lookup
JNDI Lookup
context.xml >> !
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" username="oracle" password="oracle" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@address:1521:SID" />
web.xml >> !<resource-ref> <res-ref-name>jdbc/test</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth>
</resource-ref>
java Source >> !
ds = ctx.lookup("java:comp/env/jdbc/test");
JDBC Connection Pool
Tomcat Resource
Configure DataSource
JNDI Lookup
끝{M.Special : DB 연동}
NEXT
호스트
CategoryGMMG