kr.co.hit.live.transaction.datasource
Class XAPooledDataSource
java.lang.Object
kr.co.hit.live.transaction.datasource.PooledDataSource
kr.co.hit.live.transaction.datasource.XAPooledDataSource
- All Implemented Interfaces:
- Wrapper, CommonDataSource, DataSource
- Direct Known Subclasses:
- StandardXAPooledDataSource
public abstract class XAPooledDataSource
- extends PooledDataSource
XADataSource를 사용하여 Connection pooling을 관리하는 javax.sql.DataSource의 구현을 위한
상위 추상클래스이다.
Connection pooling 관리를 위한 기능은 PooledDataSource를 상속받아 구현되었으며,
벤더별로 XADataSource을 생성하는 부분은 하위 클래스에서 구현한다.
생성자에 넘겨주는 Properties 객체에 정의되는 프로퍼티들은 다음과 같다.
- datasourceName : Datasource 명이다.
- jdbc.connectionurl : 연결할 database url 로 jdbc:subprotocol:subname 형식의 문자열이다.
- jdbc.driver : 사용할 JDBC Driver 클래스명이다.
- jdbc.username : database 연결시 사용할 사용자 ID 이다.
- jdbc.password : 사용자 암호이다.
- jdbc.defaultautocommit : 생성하는 Connection 객체의 auto-commit 모드를 설정한다. true 또는 false 값을 갖는다.
- pool.maximumactiveconnections : Active Connection 수의 최대 값이다. 지정하지 않을 경우 1으로 설정된다.
현재 연결되어 사용 중인 Connection 수가 이 값보다 크거나 같고, idle 상태의 Connection이 없다면
새로이 요청되는 Connection은 최대 pool.timetowait 값으로 설정된 시간 동안 Active Connection이 idle 상태로 반환되는 것을 기다린다.
- pool.maximumidleconnections : Idle Connection의 최대 값이다.
사용된 후에 반환되는 Connection은 그 시점에 idle Connection의 개수가 이 값보다 작을 경우에만 idel pool로 반환되며, 이 값보다
크거나 같다면 반환되는 Connection은 바로 close() 된다. 지정하지 않을 경우 1으로 설정된다.
- pool.timetowait : Active Connection의 개수가 pool.maximumactiveconnections 으로 설정된 값보다 크거나 같고 idle 상태의
connection이 없을 경우에는 새로이 요청되는 connection은 이 값으로 설정된 시간(milliseconds) 만큼 다른 Connection이 idle 상태로
반환되기를 기다려야 한다. 지정하지 않을 경우 0으로 설정된다.
- Since:
- 3.0
- Version:
- $Revision: 1.1 $ $Date: 2006/09/26 08:20:10 $
- Author:
- 김형도
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
XAPooledDataSource
public XAPooledDataSource(Properties props)
생성자이다. 설정에 필요한 속성값들은 Properties 객체내에 정의한다.
- Parameters:
props - 생성시 사용할 속성값들이 정의된 Properties 객체
getConnection
public Connection getConnection()
throws SQLException
PooledDataSource의 getConnection()을 재정의한다.
여기에서 트랜젝션 관련 처리를 한다.
- Specified by:
getConnection in interface DataSource- Overrides:
getConnection in class PooledDataSource
- Returns:
- Connection 객체
- Throws:
SQLException - 데이터베이스 연결 시 에러가 발생할 때
Copyright © 2014. All Rights Reserved.