Konnektivität relationaler Datenbanken in Liberty konfigurieren

Sie können für die Datenbankverbindungen eine Datenquelle konfigurieren, der andere JDBC-Provider zugeordnet sind. Die JDBC-Provider stellen die Treiberimplementierungsklassen bereit, die für die JDBC-Konnektivität mit Ihrer speziellen Anbieterdatenbank erforderlich sind.

Informationen zu diesem Vorgang

Wenn Sie über Ihre Anwendung auf eine Datenbank zugreifen möchten, müssen Sie eine Datenquelle verwenden. Datenquellen werden von JDBC-Treibern in den folgenden Varianten bereitgestellt:
  • javax.sql.DataSource

    Dieser Typ von Datenquelle ist der Basistyp. Die Datenquelle bietet keine Interoperabilität, die das Verbindungspooling erweitert, und kann nicht als Ressource mit zweiphasiger Festschreibung an Transaktionen teilnehmen, an denen mehrere Ressourcen beteiligt sind.

  • javax.sql.ConnectionPoolDataSource

    Dieser Typ von Datenquelle ist für Verbindungspooling aktiviert. Diese Datenquelle kann nicht als Ressource mit zweiphasiger Festschreibung an Transaktionen teilnehmen, an denen mehrere Ressourcen beteiligt sind.

  • javax.sql.XADataSource

    Dieser Typ von Datenquelle ist für Verbindungspooling aktiviert und kann als Ressource mit zweiphasiger Festschreibung an Transaktionen teilnehmen, an denen mehrere Ressourcen beteiligt sind.

Damit Ihr JDBC-Treiber in Liberty verwendet werden kann, müssen Sie mindestens eine Datenquelle eines der zuvor beschriebenen Typen bereitstellen. Für die gängigen JDBC-Treiber kennt Liberty bereits die Implementierungsklassennamen für die verschiedenen Datenquellentypen. Sie müssen Liberty nur mitteilen, wo der JDBC-Treiber zu finden ist.

Vorgehensweise

  1. Definieren Sie in der Datei server.xml eine gemeinsam genutzte Bibliothek, die auf die Position der JAR-Datei bzw. der komprimierten Dateien Ihres JDBC-Treibers verweist. Beispiel:
    <library id="DB2JCC4Lib">
        <fileset dir="C:/DB2/java" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/>
    </library>
  2. Definieren Sie eine Datenquelle, die den JDBC-Treiber verwendet. Wenn Sie den Datenquellentyp nicht angeben, wählt Liberty die Datenquelle in der folgenden Reihenfolge und nach Verfügbarkeit aus.
    • javax.sql.ConnectionPoolDataSource
    • javax.sql.DataSource
    • javax.sql.XADataSource
    Im Folgenden sehen Sie ein Beispiel, in dem der Standardwert für den Datenquellentyp akzeptiert wird:
    <dataSource id="db2" jndiName="jdbc/db2">
        <jdbcDriver libraryRef="DB2JCC4Lib"/>
        <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/>
    </dataSource>
    Im Folgenden sehen Sie ein Beispiel, in dem der Typ javax.sql.XADataSource verwendet wird:
    <dataSource id="db2xa" jndiName="jdbc/db2xa" type="javax.sql.XADataSource">
        <jdbcDriver libraryRef="DB2JCC4Lib"/>
        <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/>
    </dataSource>
    Eine Standarddatenquelle ist verfügbar, wenn mindestens ein Java EE 7-Feature aktiviert ist. Diese Datenquelle verwendet eine andere Reihenfolge für die Typermittlung, wenn kein Typ angegeben ist.
    • javax.sql.XADataSource
    • javax.sql.ConnectionPoolDataSource
    • javax.sql.DataSource
    Diese Datenquelle ist verfügbar als java:comp/DefaultDataSource. Sie müssen hierfür keinen JNDI-Namen angeben. Wenn Sie die Standarddatenquelle konfigurieren möchten, geben Sie eine Datenquelle an und setzen Sie die ID auf DefaultDataSource. Im Folgenden sehen Sie ein Beispiel, in dem die Standarddatenquelle auf eine DB2-Datenbank verweist:
    <dataSource id="DefaultDataSource">
    	<jdbcDriver libraryRef="DB2JCC4Lib"/>
    	<properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/>
    </dataSource>
  3. Optional: Konfigurieren Sie Attribute für die Datenquelle, wie z. B. die JDBC-Anbietereigenschaften und die Eigenschaften für das Verbindungspooling.
    Beispiel:
    <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>
    Eine vollständige Liste der Konfigurationsattribute für das Element dataSource, das Element connectionManager und einige gängige JDBC-Anbieter finden Sie unter Datenquelle (dataSource).
  4. Optional: Konfigurieren Sie entsprechend den folgenden Beispielen Datenquellen für gängige Datenbanken.
    Für 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>
    Für DB2 on iSeries (nativ)
    <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>
    Für DB2 on iSeries (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>
    Für Derby Embedded
    <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>
    Für 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>
    Für 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>
    Für 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>
    Für Microsoft SQL Server (Microsoft-JDBC-Treiber)
    <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>
    Für Microsoft SQL Server (DataDirect Connect for JDBC)
    <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>
    Für 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>
    Für 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>
    Für Oracle Call Interface (OCI)
    <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>
    Konfigurieren Sie die Liberty-Umgebung, um die nativen OCI-Client-Bibliotheken zu erkennen, indem Sie den Pfad auf die Bibliotheken setzen, und zwar in der Liberty-Datei server.env in der Pfadumgebungsvariablen für Ihr Betriebssystem.
    • Für AIX-PlattformenLIBPATH
    • Für HP-UNIX-PlattformenSHLIBPATH
    • Für LINUX-PlattformenFür Solaris-PlattformenLD_LIBRARY_PATH
    • Für Windows-PlattformenPATH
    Setzen Sie den Bibliothekspfad in der Datei Liberty jvm.options.
    -Djava.library.path=C:\\Oracle\\OCI\\instantclient

    Weitere Informationen zu den Konfigurationsdateien server.env und jvm.options finden Sie unter Liberty-Umgebung anpassen.

    Für 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>
    Für 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>
    Für einen in Liberty nicht bekannten JDBC-Treiber
    <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>
    In diesem Beispiel befindet sich der JDBC-Treiber in der Datei C:/Drivers/SampleJDBC/sampleDriver.jar und stellt eine Implementierung von javax.sql.XADataSource mit dem Namen com.ibm.sample.SampleXADataSource bereit. Außerdem stellt der JDBC-Treiber anbieterspezifische Datenquelleneigenschaften wie databaseName, hostName und port bereit.

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_dep_configuring_ds.html