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에 알려주면 됩니다.

프로시저

  1. server.xml 파일에서 JDBC 드라이버 JAR 또는 압축 파일의 위치를 가리키는 공유 라이브러리를 정의하십시오. 예:
    <library id="DB2JCC4Lib">
        <fileset dir="C:/DB2/java" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/>
    </library>
  2. 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>
  3. 옵션: JDBC 벤더 특성 및 연결 풀링 특성과 같이 데이터 소스에 대한 속성을 구성하십시오.
    예:
    <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>
    dataSource 요소, connectionManager 요소 및 일부 일반적으로 사용되는 JDBC 벤더에 대한 구성 속성의 전체 목록은 데이터 소스(dataSource)를 참조하십시오.
  4. 옵션: 다음 예제에 따라 일반적으로 사용되는 데이터베이스에 대해 데이터 소스를 구성하십시오.
    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(고유)의 경우
    <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(도구 상자)의 경우
    <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">
        <file name="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">
        <file name="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">
        <file name="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">
        <file name="C:/Oracle/lib/ojdbc6.jar"/>
    </library>
    OCI(Oracle Call Interface)의 경우
    <dataSource id="DefaultDataSource" jndiName="jdbc/oracleOCI">
      <jdbcDriver libraryRef="OracleOciLib"/>
      <properties.oracle URL="jdbc:oracle:oci:@//localhost:1521/SAMPLEDB"/>                     
    </dataSource>
    
    <library id="OracleOciLib">
      <fileset dir="C:/Oracle/OCI/instantclient"/>
    </library>
    운영 체제의 경로 환경 변수에 대한 Liberty server.env 파일의 라이브러리에 경로를 설정하여 OCI 고유 클라이언트 라이브러리를 인식할 수 있도록 Liberty 환경을 구성합니다.
      또한 Liberty jvm.options 파일에서 라이브러리 경로를 설정하십시오.
      -Djava.library.path=C:\\Oracle\\OCI\\instantclient

      server.envjvm.options 구성 파일 사용에 대한 자세한 정보는 Liberty 환경의 사용자 정의의 내용을 참조하십시오.

      Sybase의 경우
      <dataSource id="DefaultDataSource" jndiName="jdbc/sybase">
          <jdbcDriver libraryRef="SybaseLib"/>
          <properties.sybase databaseName="SAMPLEDB" serverName="localhost" portNumber="5000"/>
      </dataSource>
      
      <library id="SybaseLib">
          <file name="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">
          <file name="C:/Drivers/solidDB/SolidDriver2.0.jar"/>
      </library>
      Liberty에 알려지지 않은 JDBC 드라이버의 경우
      <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">
          <file name="C:/Drivers/SampleJDBC/sampleDriver.jar"/>
      </library>
      예제에서 JDBC 드라이버는 C:/Drivers/SampleJDBC/sampleDriver.jar에 있으며 com.ibm.sample.SampleXADataSource로 이름 지정된 javax.sql.XADataSource의 구현을 제공합니다. JDBC 드라이버는 또한 databaseName, hostName, port와 같은 벤더 특정 데이터 소스 특성도 제공합니다.

    주제의 유형을 표시하는 아이콘 태스크 주제

    파일 이름: twlp_dep_configuring_ds.html