JEUS - DB Connection Pool 과 JDBC

원문 : http://blog.naver.com/nanandayo/60101143688 의 글이다.
JEUS에서 MSSQL을 사용 중인데, Oracle 설정 내용이긴 하나, COnnection 연결이 불량한 지금 이 내용을 참고하고자 발췌했다.

JEUS - DB Connection Pool 과 JDBC

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

제목 : JEUS - DB Connection Pool 과 JDBC

참고자료 : http://technet.tmaxsoft.com

 

작성자 : 윤영욱

작성일 : 2008.8.26

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

 

1. JEUS JDBC 의 개요


 

JDBC(Java Database Connectivity)는 Java 어플리케이션(Application)이 관계형 DB 에 접속하기 위한 Java 표준 API 이다.


JEUS 는 JDBC 3.0API 를 지원하며, JEUS 가 모든 JDBC 의 기능들을 제공하기 위해서는 확실한 구성이 필수적으로 요구된다.

 

최적화된 JDBC 기능을 사용하기 위해 본 매뉴얼을 따라 알맞은 구성을 해야 한다.

 


1) 지원되는 JDBC 드라이버들

 

JEUS 는 JDBC 인증을 받은 드라이버들을 지원한다.

http://industry.java.sun.com/products/jdbc/drives 에서 인증된 드라이버들을 찾을 수 있다.

 

환경구성은 서로 다르며 이는 각 드라이버 설정을 위해 다른 속성들을 요구하기 때문이다.

 

 

 

2)  Web Container 의 Connection Pooling

 

JEUS Web Container 는 그 자신을 위한 connection pooling 을 제공한다.

 

 


3)  JEUS Connection Pooling

 

Connection Pooling 은 database connection 캐시를 위한 하나의 프레임워크(Framework)이다.

 

Connection pool 이 시작될 때 특정한 수의 물리적 connection을 만들며 이는 어플리케이션 실행 시간에 connection 생성을

 

위한 오버헤드 (overhead)를 감소시킨다.

 


4) Pooling 구조

아래의 [그림 21] 은 JEUS JDBC Connection Pooling 의 전체적인 구조를 보여 준다.

 

 

 

 

5) Connection Pool 의 이점

 

Connection Pool 사용의 이점들은 아래의 두 가지로 요약할 수 있다.

 

- 보다 높은 성능

 

DB Connection 은 처리과정이 느리다.

 

Connection Pool 안에서의 모든 실제 커넥션들은 사용시에 만들어져 어플리케이션을 위한 준비를 한다.

 

Connection 을 더 이상 사용하지 않을 때에는 그것을 Pool 에 반환시켜서 connection 중단의 오버헤드를 감소시킬 수 있다.

 


- 연결 관리

 

이것은 connection pool 과 함께 동시 connection 들의 수를 제어할 수있다.

 

동시 connection 들의 최대 수를 구성함으로써 DB 의 동시connection 을 제한하는 작업을 효율적으로 할 수 있다.

 


6) DataSource

하나의 javax.sql.DataSource 는 어플리케이션과 connection pool 사이의 인터페이스이다.

 

javax.sql.DataSource 객체(object)는 DB Connection 들의 factory 로서 고려되어 질 수 있으며 그리고 이것은

 

java.sql.DriverManager 이상의 많은 이점을 제공한다.

 


 

7) DataSource 사용의 이점


1. No hard coding :

 

javax.sql.DataSourc 를 가졌다면 어플리케이션에서 driver 정보의 hard code 가 필요 없을 것이다.

 

대신에 JEUS 에서는 JDBC 드라이버 구성은 JEUSMain.xml 에 들어가 있다.


 

2. Connection Pool :

 

connection pool 은 성능과 관리면에서 많은 이점을 가져다 준다.

 

javax.sql.DataSource 은 하나의 connection pool 의 구성에서 중요 역할을 수행한다.

 

 


3. 분산 트랜잭션(Distributed Transaction) :

 

분산 트랜잭션을 가진 어플리케이션의 구현을 위해 XADataSource 의 설정이 필수적이다.


 

 

 

8) DataSource 타입들(DataSource Types)

• DataSource: 사용자들을 위해 Connection 을 반환한다.


• ConnectionPoolDataSource: Connection Pool 로부터 사용자들을 위해 Connection 을 반환한다.

• XADataSource: XA 연결 Pool 로부터 사용자들을 위해 분산/전역 Transaction 역할을 하는 Connection 을 반환한다.

• LocalXADataSource: XA 연결 Pool 로부터 사용자들을 위해 지역 Transaction 역할을 하는 connection 을 반환한다.

(일명 지역 XA DataSource)

 

 

 

 

 

 

2. JDBC DataSource 구성

JEUS 에서 JDBC 드라이버 구성을 시도할 때 JEUS_HOME\lib\datasource\ 디렉토리 안에 JDBC 드라이버 클래스

 

라이브러리가 있는 지 먼저 확인한 후 다음 절과 같이 JEUSMain.xml 을 구성하면 된다.

 

 

1) JEUSMain.xml 기본구성

JEUSMain.xml 에 DataSource 를 설정 할 수 있다.

 

Javax.sql.DataSource 의 속성들은 각 드라이버별로 다르기 때문에 사용하기 원하는 드라이버의 독점적특성을 파악하고

 

그 특성에 맞게 설정을 해야 한다.


아래의 XML element 들은 <resource><data-source><database>XML element 의 하위 element 로서 이용할 수 있다.


• Vendor:

DB 벤더의 이름 (“oracle”, “jeus_mssql”, “db2”, “sybase”, “inet”, “others”).


• Export name:

javax.sql.DataSource 객체하의 JNDI export 이름.

• Data source class name:

JDBC 드라이버의 클래스 이름.

• Data source type:

“DataSource”, “ConnectionPoolDataSource”, “XADataSource”, “LocalXADataSource”.


• Database name:

Database 의 이름.


• Data source name:

일반적으로 이것은 data source class name 과 동일.


• Service name:

Oracle DB 의 SID(inet JDBC 드라이버 사용시).


 Description:

DataSource 를 위해 설명하는 텍스트.

• Network protocol:

Database Connection 을 할 때 사용되는 프로토콜
(예를 들면 Sybase 의 "Tds").

• Password:

사용자의 암호.

• Encryption:

만약 "true"로 설정되었다면 password 는 Base64 로 암호화되어 있을 것이다.

그렇지않다면 test 기반의 password 일 것이다.


• Port number:

Database 리스너의 포트번호.

• Server name:

Database 가 운용중인 서버의 이름이나 IP 주소.


• User:

사용자 이름.

• Driver type:

 

Oracle JDBC 드라이버의 타입(예를 들면 thin,oci). 예제 (Oracle):

 

---------------------<<JEUSMain.xml>>-----------------------------------------------------
<jeus-system>
. . .
    <resource>
        <data-source>
            <database>
                <vendor>oracle</vendor>
                <export-name>datasource1</export-name>
                <data-source-class-name>oracle.jdbc.pool.OracleDataSource</data-source-class-name>
                <data-source-type>DataSource</data-source-type>
                <database-name>MYDB</database-name>

                <data-source-name>oracle.jdbc.pool.OracleDataSource</data-source-name>
                <service-name>oradb1</service-name>
                <description>This is the DataSource setting for all transactions </description>
                <network-protocol/> <!--Not used with Oracle-->
                <password>tiger</password>
                <encryption>false</encryption>
                <port-number>1521</port-number>
                <server-name>192.168.1.2</server-name>
                <user>scott</user>
                <driver-type>thin</driver-type>
. . .           <!-- See later sub-section -->
            </database>
. . .
        </data-source>
. . .
    </resource>
</jeus-system>

 

---------------------<<JEUSMain.xml>>-----------------------------------------------------


참고: <database>element 들은 <data-source>element 아래에 추가된다.

 

이후 생략 - (용량때문) - http://blog.naver.com/nanandayo/60101143688

by 狂虎 | 2011/01/24 18:01 | 수첩 | 트랙백(1) | 덧글(0)

트랙백 주소 : http://mt1716.egloos.com/tb/10651497
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from Nike's succe.. at 2014/07/16 10:45

제목 : uk replica watches for sale
Nike's successful secret At th copy rolex watches uk e moment, plac faux cartier tank watch e world first (according to brand value) the sports brand is Nike. But also from the competitor like forest's sports brand camp, Nike end up being pupi che......more

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶