DataSource는 하나의 javax.sql.DataSource는 어플리케이션과 connection pool 사이의 인터페이스입니다. Javax.sql.DataSource 객체(Object)는 DB Connection들의 Factory로서 고려 되어질 수 있으며 이것은 java.sql.DriverManager이상의 많은 이점을 제공합니다. 우선은 javax.sql.DataSource를 가졌다면 어플리케이션에서 driver 정보의 하드코딩이 필요가 없이 JEUSMain.xml에 들어가 있습니다. 또한 Connection Pool은 성능과 관리 면에서 많은 이점을 가져다 주고 있습니다. 현재는 WAS의 표준으로 쓰이고 있으며 JEUS에서도 5점대 버전에 올라가면서 javax.sql.DataSource 방식만 지원하고 있습니다.
JEUS에서는 아래 3가지의 DataSource 타입을 지원합니다.
ConnectionPoolDataSource
1. Transaction이 불필요 하며, 단순 OLTP성 업무가 주를 이룰 경우 사용
2. Transaction이 필요치 않아 Transaction Manager의 개입이 불필요 하여 속도가 빠릅니다.
3. 이 타입의 ConnectionPool로부터 반납된 Connection은 기본적으로 setAuto Commit에 대해 ‘true’ 속성을 가지고 있습니다.
XADataSource 하는 Connection을 반환.
1. Transaction 관리가 필요한 경우
2. Transaction에 참여하는 다양한 DB 들이 XA 분산 환경을 지원하고, 이들을 Gobal Transaction으로 묶어야 할 때 사용할 수 있습니다.
3. 이때, JEUS 컨테이너마다 Transaction Manager가 기동하게 되며, DB와 Transaction 마다의 가지를 형성하고 경우에 따라서는 `Branch Join`등의 최적화 알고리즘을 작동시켜 향상된 XA 분산환경을 지원합니다.
4. 이 타입의 ConnectionPool로부터 반납된 Connection은 기본적으로 setAuto Commit에 대해 ‘false’ 속성을 가지고 있습니다.
LocalXADataSource
1. 트랜잭션이 필요하며 단일 DB 인스턴스와의 연계가 주를 이룰 경우
2. 작동 자체는 XADataSource와 동일하나, 내부적으로 JEUS Transaction Manager의 도움말을 받아서, Local Transaction을 사용할 수 Connection Pool을 별도로 운영.
3. Local Transaction을 사용하기 때문에, XA Connection과 관련한 XA 데이터 교환을 따로 하지 않아도 되기 때문에, 성능 향상을 가져올 수 있습니다.
'1. 미들웨어이야기 > 05. 상용미들웨어' 카테고리의 다른 글
JEUS Startup class 등록 (0) | 2009.06.05 |
---|---|
DB2 Net Driver 와 App Driver (0) | 2009.06.05 |
Oracle oci 와 thin 간단 비교 (0) | 2009.06.05 |
JDBC Driver Type (0) | 2009.06.05 |
JEUS 에서 Tomcat 처럼 서블릿 호출 (0) | 2009.06.05 |