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
- 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
- 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>
- 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>
- Optional: Konfigurieren Sie Attribute für die Datenquelle, wie z. B. die
JDBC-Anbietereigenschaften und die Eigenschaften für das Verbindungspooling. Beispiel: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).
<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>
- 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.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
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.<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>
Untergeordnete Themen
- Standarddatenquelle konfigurieren
Sie können für die Datenbankverbindungen eine Standarddatenquelle 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. - Anwendungsdefinierte Datenquellen
Sie können eine Datenquelle in Ihrer Anwendung mithilfe von Annotationen oder im Implementierungsdeskriptor gemäß der Java™ EE-Spezifikation definieren. - Clientweiterleitung für Anwendungen konfigurieren, die DB2-Datenbanken verwenden
Das Feature für Clientweiterleitung ermöglicht Ihnen, Unternehmensanwendungen für eine DB2-Datenbank so zu konfigurieren, dass die Verbindung nach einem Kommunikationsverlust wiederhergestellt wird und die Anwendungen mit minimaler Unterbrechung ihre Arbeit fortsetzen können. Die Weiterleitung ist ein zentraler Aspekt der Unterstützung des Dauerbetriebs, aber eine Weiterleitung ist nur möglich, wenn es eine alternative Position gibt, die der Anwendungsserververbindung bekannt ist. - DB2-JDBC-Type-2-Treiber unter z/OS aktivieren
Der Liberty-Server kann mit DB2 interagieren, wenn die Implementierung des JDBC-Type-2-Treibers unter z/OS verwendet wird. - Verbindungspooling für Datenbankverbindungen konfigurieren
Sie können das Verbindungspooling für Ihre Datenquelle konfigurieren, indem Sie einen Verbindungsmanager dafür definieren.

Dateiname: twlp_dep_configuring_ds.html