Configuration de connectivité de base de données relationnelle dans Liberty

Vous pouvez configurer une source de données associée à différents fournisseurs JDBC pour la connectivité à la base de données. Un fournisseur JDBC fournit les classes d'implémentation de pilote requises pour réaliser la connectivité JDBC avec un type ou une marque de base de données spécifique.

Pourquoi et quand exécuter cette tâche

Pour accéder à une base de données depuis votre application, vous devez utiliser une source de données. Les sources de données sont fournies par les pilotes JDBC, dans les variantes suivantes :
  • javax.sql.DataSource

    Ce type de source de données correspond au format de base. Elle ne fournit aucune interopérabilité facilitant la mise en pool des connexions et, en tant que ressource à deux phases, elle ne peut pas participer aux transactions impliquant plusieurs ressources.

  • javax.sql.ConnectionPoolDataSource

    Ce type de source de données se prête à la mise en pool des connexions. Elle ne peut pas participer, en tant que ressource à deux phases, aux transactions impliquant plusieurs ressources.

  • javax.sql.XADataSource

    Ce type de source de données est à la fois prévue pour la mise en pool des connexions et peut participer, en tant que ressource à deux phases, aux transactions impliquant plusieurs ressources.

Pour pouvoir être utilisé dans Liberty, votre pilote JDBC doit fournir au moins l'un de ces types de source de données. Pour les pilotes JDBC les plus courants, Liberty connaît déjà le nom des classes d'implémentation des différents types de source de données. Il vous suffit d'indiquer à Liberty l'emplacement du pilote JDBC.

Procédure

  1. Dans le fichier server.xml, définissez une bibliothèque partagée pointant sur l'emplacement des fichiers JAR ou des fichiers compressés de votre pilote JDBC. Exemple :
    <library id="DB2JCC4Lib">
        <fileset dir="C:/DB2/java" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/>
    </library>
  2. Définissez une source de données à l'aide du pilote JDBC. Si vous n'indiquez pas le type de source de données, Liberty choisit la source de données dans l'ordre suivant, en fonction des disponibilités :
    • javax.sql.ConnectionPoolDataSource
    • javax.sql.DataSource
    • javax.sql.XADataSource
    L'exemple suivant accepte la valeur par défaut du type de source de données :
    <dataSource id="db2" jndiName="jdbc/db2">
        <jdbcDriver libraryRef="DB2JCC4Lib"/>
        <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/>
    </dataSource>
    L'exemple suivant utilise le type 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>
    Une source de données par défaut est disponible quand au moins une fonction Java EE 7 est activée. Cette source de données utilise une priorité différente afin de déterminer le type si aucun n'est spécifié.
    • javax.sql.XADataSource
    • javax.sql.ConnectionPoolDataSource
    • javax.sql.DataSource
    Cette source de données est disponible en tant que java:comp/DefaultDataSource. Il n'est pas nécessaire de spécifier de jndiName pour la source. Pour configurer la source de données par défaut, indiquez une source avec l'ID défini sur DefaultDataSource. L'exemple suivant configure la source de données par défaut pour pointer vers une base de données DB2 :
    <dataSource id="DefaultDataSource">
    	<jdbcDriver libraryRef="DB2JCC4Lib"/>
    	<properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/>
    </dataSource>
  3. Facultatif : Configurez les attributs de la source de données, par exemple les propriétés du fournisseur JDBC et les propriétés du gestionnaire de connexions (mise en pool des connexions).
    Exemple :
    <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>
    Pour la liste complète des attributs de configuration des éléments dataSource et connectionManager ainsi que des propriétés des fournisseurs JDBC les plus courants, consultez la rubrique Source de données (dataSource).
  4. Facultatif : Configurez des sources de données pour les bases de données les plus courantes en vous inspirant des exemples suivants.
    Pour 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>
    Pour DB2 sur iSeries (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>
    Pour DB2 sur 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>
    Pour 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>
    Pour 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>
    Pour 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>
    Pour 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>
    Pour Microsoft SQL Server (pilote 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>
    Pour Microsoft SQL Server (pilote 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">
        <fileset dir="C:/DataDirect/Connect-4.2/lib/sqlserver.jar"/>
    </library>
    Pour 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>
    Pour 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>
    Pour 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>
    Pour 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>
    Pour un pilote JDBC connu de Liberty
    <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>
    Dans cet exemple, le pilote JDBC se trouve dans C:/Drivers/SampleJDBC/sampleDriver.jar et il fournit une implémentation de javax.sql.XADataSource nommée com.ibm.sample.SampleXADataSource. Le pilote JDBC fournit également des propriétés de source de données spécifiques au fournisseur, telles que databaseName, hostName et port.

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_dep_configuring_ds.html