반응형
국비교육 협동 프로젝트 중 팀원 중에 한 명이 JNDI와 Mybatis를 사용해 DB와 연결시키는(?)
나에게는 다소 생소한 방법을 사용해서 몇 자 적어보려 한다.
우선 JNDI란?
블로그에서 굉장히 친절하게 설명해주고 있다
요약:
JNDI란?
Java Naming and Directory interface의 약자로 DB Pool을 미리 Naming 시켜두는 방법(DB 연결방법 중 하나)
왜 사용?
보통 우리는 JDBC를(DBCP)설정해서 개발을 한다 하지만 웹 어플리케이션을 운영서버로 만들경우 얘기는 달라진다.
그에 따른 이유
1. 개발을 한 사람과 실제 서비스를 운영하는 Admin은 다른 경우가 많기 때문에 소스 레벨에서 설정되어 있는 것보다
WAS에서 설정이 되어 있는 것을 선호합니다.
2. 또한 WAS에 여러 개의 웹 어플리케이션을 올려서 사용하기 때문에 WAS에서 한 번에 설정해 주는 것이 자원낭비를 줄일 수 있습니다.
3. 장애가 나거나 성능이 정상적이지 못하면 다른 한 서버가 대신 일을 해줄 수 있습니다.
정리
운영, 관리, 최적화 문제 대처에 다양한 이점이 있기 때문에 JNDI를 사용한다.
이제는 이클립스 Server 디렉터리에 적용시켜보자
1. Servers -> tomcat -> context.xml
// <context></context> 안 하단에
<ResourceLink global="jdbc/XE"
name="jdbc/XE"
type="javax.sql.DataSource"/>
2. Servers -> tomcat -> server.xml
//<GlobalNamingResources></GlobalNamingResources> 안에
<Resource name="jdbc/XE"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
url="jdbc:oracle:thin:@localhost:1521:XE"
username="스키마이름"
password="스키마비밀번호"
maxActive="20"
maxIdle="10"
maxWait="-1" />
반응형