본문 바로가기

기타툴

[Tibero] 디비 커넥션풀(DBCP) 스프링 설정하기 (spring 오라클, 티베로 DB 2개 연결하는 방법)

728x90

디비 커넥션풀(DBCP) 스프링 설정

(spring 오라클, 티베로 DB 2개 연결하는 방법)


기본 오라클DB를 사용하고 있는 서비스에서 추가로 티베로DB를 연결해야 할 때 DBCP 설정하는 방법이다. 서비스 하는 환경에 따라 변수는 가변적으로 사용하면 됨. 스프링 기반 전자정부프레임워크에서 티베로 추가 시 수정해야할 파일 목록은 다음과 같다.

 

 

✅사전 준비

tibero6-jdbc.jar 파일을 WEB-INF/lib/ 경로에 넣어준다.

tibero6-jdbc.jar
1.49MB

 

 

 

1. jdbc 설정 파일에 티베로 추가(jdbc.properties)

#tibero
jdbc.tibero.driver=com.tmax.tibero.jdbc.TbDriver
jdbc.tibero.url=jdbc:tibero:thin:@ip주소:포트:SID
jdbc.tibero.username=GGOYO
jdbc.tibero.password=1234
jdbc.tibero.maxActive=8 #동시에 사용 가능한 최대 커넥션 개수(기본:8)
jdbc.tibero.maxIdle=8 #커넥션풀에 반납할 때 최대로 유지되는 커넥션 개수(기본:8)
jdbc.tibero.maxWait=10000 #사용할 커넥션이 없을 때 커넥션 반납 대기 시간

 

오라클과 티베로DB를 동시에 사용하려면 오라클 DBCP 설정한 라인 바로 아래에 추가하면 된다.

 

 

2. context-datasource.xml

<!-- Tibero DB DataSource -->
<bean id="dataSourceTibero" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
 	<property name="driverClassName"	value="${jdbc.tibero.driver}"/>
 	<property name="url" 			value="${jdbc.tibero.url}"/>
 	<property name="username" 		value="${jdbc.tibero.username}"/>
 	<property name="password" 		value="${jdbc.tibero.password}"/>
	<property name="maxActive" 		value="${jdbc.tibero.maxActive}" />
	<property name="maxIdle" 		value="${jdbc.tibero.maxIdle}" />
	<property name="maxWait" 		value="${jdbc.tibero.maxWait}" />
</bean>

 

마찬가지로 오라클과 티베로DB를 동시에 사용하려면 오라클 DBCP 설정한 라인 바로 아래에 추가하면 된다.

 

3. context-sqlMap.xml

<bean id="sqlMapClientTibero" class="egovframework.rte.psl.orm.ibatis.SqlMapClientFactoryBean">
    <property name="configLocation" value="classpath:/egovframework/sqlmap/config/sql-map-config.xml"/>
    <property name="mappingLocations" >
        <list>
            <value>classpath:/egovframework/sqlmap/ggoyo/**/*.xml</value>
        </list>
    </property>
    <property name="dataSource" ref="dataSourceTibero"/>
    <property name="lobHandler" ref="egov.lobHandler"/>
</bean>

 

티베로 데이터소스를 사용할 리스트를 정의하는 구문

 

 

4. DAO 등 서비스 연결에 티베로 활용하기 예시

@Repository("comTiberoAbstractDAO")
public class ComTiberoAbstractDAO extends EgovAbstractDAO {

	@Resource(name="sqlMapClientTibero")
	public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {
        super.setSuperSqlMapClient(sqlMapClient);
    }
	
    // 티베로DB에서 조회할 리스트
    @SuppressWarnings("rawtypes")
	public List selectTiberoList(Map param, String tableName) throws Exception {
        return list("hr1000DAO.tibero" + tableName + "List", param);
    }
}

 

티베로 DB를 조회하는 용으로 따로 만든 TiberoDAO 이걸 활용해서 티베로 불러올 때, 오라클 불러올 때 동시에 사용 가능한 DBCP 설정이 끝났다.