Written by
최태열
on
on
Servlet5
Server에서 DB 정보 설정하기
context.xml
META-INF 하위에 Server에서 사용하는 DB의 정보를 담고 있는 파일이다.
DB system 다운을 방지하기 위해서는 Connection 개수를 조절해야 한다.
따라서 다음과 같은 방식으로 Connection 개수를 조절한다.
- 처음부터 Connection 객체 생성해서 대기상태로 유지
- client가 최대 개수까지 접속자들에 한해서 생성후 접속 해제하면 Connection 삭제가 아니라 Connection들만 저장된 별도의 메모리에 반환 새로운 Client는 재사용 개념
- Web Application Server와 DB Server 구분 단, Connection 개수 제한은 WAS의 설정 파일로 관리
그래서 나온 파일이 context.xml이다.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!-- oracle DB용어 -->
<Resource name="jdbc/taye" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:xe" username=""
password="" maxTotal="20" maxIdle="10" maxWaitMillis="-1" />
</Context>
DB에 대해 최대 Connection수, 최대 대기 Connection수, 최대 대기시간을 조절할 수 있다.
web.xml
WEB-INF/web.xml 하단에서 web project 자체의 설정을 담당하는 파일로 Deployment Description[DD]라고 명칭이 부여된다.
설정 정보들
- url에 file명 기술 없이도 자동 실행되는 intro 파일명 명시
- Connection Pool
- 개념은 모든 server에 동일하게 반영
- 단, 서버마다 설정 방식이 다름(벤더별 상이함)
- 적용 방식
- DB + 접속자 수 제어의 설정 정보 META-INF/context.xml
- 프로젝트 web.xml
- 자바소스에서 JNDI 라는 이름(스펙)으로 자원 활용하는 스펙 모든 소스에 통일한 표준화된 코드
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>step05_CP</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/taye</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
참고
여기서 가장 중요한 것은 DB의 이름을 맞춰줘야 한다는 것이다.
<Resource name=”jdbc/taye”
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
//jdbc/taye라는 이름으로 매핑된 자원 활용하겠다는 의미
ds = (DataSource)envContext.lookup("jdbc/taye");
위처럼 이름을 동일하게 지정해줘야 제대로 동작을 한다.
Discussion and feedback