Liberty에서 관계형 데이터베이스 연결 구성
데이터베이스 연결을 위해 다른 JDBC 제공자와 연관된 데이터 소스를 구성할 수 있습니다. JDBC 제공자는 사용자 특정 벤더 데이터베이스와의 JDBC 연결에 필요한 드라이버 구현 클래스를 제공합니다.
이 태스크 정보
애플리케이션에서 데이터베이스에 액세스하려면,
데이터 소스를 사용해야 합니다. 데이터 소스는 JDBC 드라이버에서 제공되며
다음 다양성으로 제공됩니다.
- javax.sql.DataSource
이 데이터 소스 유형은 기본 양식입니다. 이는 연결 풀링을 개선하는 상호 운용성을 제공하지 않으며 2단계(phase) 사용 가능 자원으로 다중 자원과 관련된 트랜잭션에 참여할 수 없습니다.
- javax.sql.ConnectionPoolDataSource
이 데이터 소스 유형은 연결 풀링에 대해 사용 가능합니다. 2단계(Phase) 사용 가능 자원으로 다중 자원과 관련된 트랜잭션에 참여할 수 없습니다.
- javax.sql.XADataSource
이 유형의 데이터 소스는 연결 풀링에 대해 모두 사용 가능하며 2단계(Phase) 사용 가능 자원으로 다중 자원과 관련된 트랜잭션에 참여할 수 있습니다.
Liberty에서 사용 가능하게 하려면 JDBC 드라이버가 이 유형의 데이터 소스를 하나 이상 제공해야 합니다. 공통으로 사용된 JDBC 드라이버의 경우 Liberty는 다양한 데이터 소스 유형에 대한 구현 클래스 이름을 인지합니다. 사용자는 JDBC 드라이버를 찾을 수 있는 위치를 Liberty에 알려주기만 하면 됩니다.
프로시저
- server.xml 파일에서
JDBC 드라이버 JAR 또는 압축 파일의 위치를 가리키는 공유 라이브러리를 정의하십시오. 예:
<library id="DB2JCC4Lib"> <fileset dir="C:/DB2/java" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/> </library>
- JDBC 드라이버를 사용하여 데이터 소스를 정의하십시오. 데이터 소스의
유형을 지정하지 않은 경우, Liberty는 다음 순서로 사용 가능한 항목 중에서
선택합니다.
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
- javax.sql.XADataSource
다음은 데이터 소스 유형의 기본값을 승인하는 예제입니다.<dataSource id="db2" jndiName="jdbc/db2"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/> </dataSource>
javax.sql.XADataSource 유형을 사용하는 예제입니다.<dataSource id="db2xa" jndiName="jdbc/db2xa" type="javax.sql.XADataSource"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/> </dataSource>
기본 데이터 소스는 하나 이상의 Java EE 7 기능이 사용 가능한 경우에 사용할 수 있습니다. 이 데이터 소스는 다른 우선순위를 사용하여 아무 것도 지정되지 않은 경우에 유형을 판별합니다.- javax.sql.XADataSource
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
이 데이터 소스는 java:comp/DefaultDataSource로 사용 가능합니다. jndiName은 여기에 지정하지 않아도 됩니다. 기본 데이터 소스를 구성하려면 ID가 DefaultDataSource로 설정된 데이터 소스를 지정하십시오. 다음은 DB2 데이터베이스를 가리키도록 기본 데이터 소스를 구성하는 예제입니다.<dataSource id="DefaultDataSource"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/> </dataSource>
- 옵션: JDBC 벤더 특성 및 연결 풀링 특성과 같이 데이터 소스에 대한 속성을 구성하십시오. 예를 들어 다음과 같습니다.dataSource 요소, connectionManager 요소, 일부 공통으로 사용되는 JDBC 벤더에 대한 구성 속성의 전체 목록은, 데이터 소스 (dataSource)의 내용을 참조하십시오.
<dataSource id="DefaultDataSource" jndiName="jdbc/db2" connectionSharing="MatchCurrentState" isolationLevel="TRANSACTION_READ_COMMITTED" statementCacheSize="20"> <connectionManager maxPoolSize="20" minPoolSize="5" connectionTimeout="10s" agedTimeout="30m"/> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000" currentLockTimeout="30s" user="user1" password="pwd1"/> </dataSource>
- 옵션: 다음 예제에 따라 공통으로 사용되는 데이터베이스에 대해 데이터 소스를 구성하십시오.
- DB2®의 경우
<dataSource id="DefaultDataSource" jndiName="jdbc/db2"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/> </dataSource> <library id="DB2JCC4Lib"> <fileset dir="C:/DB2/java" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/> </library>
- iSeries 상의 DB2의 경우(Native)
<dataSource id="DefaultDataSource" jndiName="jdbc/db2iNative"> <jdbcDriver libraryRef="DB2iNativeLib"/> <properties.db2.i.native databaseName="*LOCAL"/> </dataSource> <library id="DB2iNativeLib"> <fileset dir="/QIBM/Proddata/java400/jdk6/lib/ext" includes="db2_classes16.jar"/> </library>
- iSeries에서 DB2의 경우(Toolbox)
<dataSource id="DefaultDataSource" jndiName="jdbc/db2iToolbox"> <jdbcDriver libraryRef="DB2iToolboxLib"/> <properties.db2.i.toolbox databaseName="SAMPLEDB" serverName="localhost"/> </dataSource> <library id="DB2iToolboxLib"> <fileset dir="/QIBM/ProdData/Http/Public/jt400/lib" includes="jt400.jar"/> </library>
- Derby 임베디드의 경우
<dataSource id="DefaultDataSource" jndiName="jdbc/derbyEmbedded"> <jdbcDriver libraryRef="DerbyLib"/> <properties.derby.embedded databaseName="C:/databases/SAMPLEDB" createDatabase="create"/> </dataSource> <library id="DerbyLib"> <fileset dir="C:/db-derby-10.8.1.2-bin/lib"/> </library>
- Derby Network Client의 경우
<dataSource id="DefaultDataSource" jndiName="jdbc/derbyClient"> <jdbcDriver libraryRef="DerbyLib"/> <properties.derby.client databaseName="C:/databases/SAMPLEDB" createDatabase="create" serverName="localhost" portNumber="1527"/> </dataSource> <library id="DerbyLib"> <fileset dir="C:/db-derby-10.8.1.2-bin/lib"/> </library>
- Informix® JCC의 경우
<dataSource id="DefaultDataSource" jndiName="jdbc/informixjcc"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.informix.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="1526"/> </dataSource> <library id="DB2JCC4Lib"> <fileset dir="C:/Drivers/jcc/4.8" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/> </library>
- Informix JDBC의 경우
<dataSource id="DefaultDataSource" jndiName="jdbc/informix"> <jdbcDriver libraryRef="InformixLib"/> <properties.informix databaseName="SAMPLEDB" ifxIFXHOST="localhost" serverName="ol_machinename" portNumber="1526"/> </dataSource> <library id="InformixLib"> <fileset dir="C:/Drivers/informix" includes="ifxjdbc.jar ifxjdbcx.jar"/> </library>
- Microsoft SQL Server의 경우 (Microsoft JDBC 드라이버)
<dataSource id="DefaultDataSource" jndiName="jdbc/mssqlserver"> <jdbcDriver libraryRef="MSJDBCLib"/> <properties.microsoft.sqlserver databaseName="SAMPLEDB" serverName="localhost" portNumber="1433"/> </dataSource> <library id="MSJDBCLib"> <fileset dir="C:/sqljdbc_6.0/enu/sqljdbc41.jar"/> </library>
- Microsoft SQL Server의 경우 (JDBC용 DataDirect Connect 드라이버)
<dataSource id="DefaultDataSource" jndiName="jdbc/ddsqlserver"> <jdbcDriver libraryRef="DataDirectLib"/> <properties.datadirect.sqlserver databaseName="SAMPLEDB" serverName="localhost" portNumber="1433"/> </dataSource> <library id="DataDirectLib"> <fileset dir="C:/DataDirect/Connect-4.2/lib/sqlserver.jar"/> </library>
- MySQL의 경우
<dataSource id="DefaultDataSource" jndiName="jdbc/mySQL"> <jdbcDriver libraryRef="MySQLLib"/> <properties databaseName="SAMPLEDB" serverName="localhost" portNumber="3306"/> </dataSource> <library id="MySQLLib"> <fileset dir="C:/mysql-connector-java-x.x.xx/mysql-connector-java-x.x.xx.jar"/> </library>
- Oracle의 경우
<dataSource id="DefaultDataSource" jndiName="jdbc/oracle"> <jdbcDriver libraryRef="OracleLib"/> <properties.oracle URL="jdbc:oracle:thin:@//localhost:1521/SAMPLEDB"/> </dataSource> <library id="OracleLib"> <fileset dir="C:/Oracle/lib/ojdbc6.jar"/> </library>
- Sybase의 경우
<dataSource id="DefaultDataSource" jndiName="jdbc/sybase"> <jdbcDriver libraryRef="SybaseLib"/> <properties.sybase databaseName="SAMPLEDB" serverName="localhost" portNumber="5000"/> </dataSource> <library id="SybaseLib"> <fileset dir="C:/Drivers/sybase/jconn4.jar"/> </library>
- solidDB®의 경우
<dataSource id="DefaultDataSource" jndiName="jdbc/solidDB"> <jdbcDriver libraryRef="solidLib"/> <properties databaseName="SAMPLEDB" URL="jdbc:solid://localhost:2315/"/> </dataSource> <library id="solidLib"> <fileset dir="C:/Drivers/solidDB/SolidDriver2.0.jar"/> </library>
- Liberty에 알려지지 않은 JDBC 드라이버의 경우
예제에서 JDBC 드라이버는 C:/Drivers/SampleJDBC/sampleDriver.jar에 있으며 com.ibm.sample.SampleXADataSource로 이름 지정된 javax.sql.XADataSource의 구현을 제공합니다. JDBC 드라이버는 또한 databaseName, hostName, port와 같은 벤더 특정 데이터 소스 특성도 제공합니다.<dataSource id="DefaultDataSource" jndiName="jdbc/sample" type="javax.sql.XADataSource"> <jdbcDriver libraryRef="SampleJDBCLib" javax.sql.XADataSource="com.ibm.sample.SampleXADataSource"/> <properties databaseName="SAMPLEDB" hostName="localhost" port="12345"/> </dataSource> <library id="SampleJDBCLib"> <fileset dir="C:/Drivers/SampleJDBC/sampleDriver.jar"/> </library>
하위 주제
- 기본 데이터 소스 구성
데이터베이스 연결을 위해 다른 JDBC 제공자와 연관된 기본 데이터 소스를 구성할 수 있습니다. JDBC 제공자는 사용자 특정 벤더 데이터베이스와의 JDBC 연결에 필요한 드라이버 구현 클래스를 제공합니다. - Liberty:애플리케이션 정의 데이터 소스
Java™ EE 스펙에서 정의한 대로 어노테이션 또는 배치 디스크립터를 통해 애플리케이션 내에 데이터 소스를 정의할 수 있습니다. - DB2 데이터베이스를 사용하는 애플리케이션의 클라이언트 재라우트 구성
클라이언트 재라우트 기능을 사용하면 통신 손실을 복구하도록 DB2 데이터베이스의 엔터프라이즈 애플리케이션을 구성할 수 있으며, 잠깐의 중단 후에 애플리케이션은 계속 작업을 수행할 수 있습니다. 재라우트는 지속적 조작에 대한 지원의 중심이지만 애플리케이션 서버 연결에서 식별되는 대체 위치가 있는 경우에만 가능합니다. - 데이터베이스 연결을 위한 연결 풀 구성
데이터 소스에 대한 연결 관리자를 정의하여 이에 대한 연결 풀링을 구성할 수 있습니다.
상위 주제: Liberty에서 데이터 액세스 애플리케이션 관리
관련 태스크:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_dep_configuring_ds
파일 이름: twlp_dep_configuring_ds.html