Manually configuring a Db2 DataSource with type 4 connectivity through Liberty using the jdbc-4.0 or jdbc-4.1 feature

A CICS® Liberty JVM server can be configured to use a JDBC DataSource with type 4 connectivity to access Db2® databases from Java™ applications.

Before you begin

The Liberty Db2 DataSource with type 4 connectivity does not use the CICS Db2 connection resource. However, if you do not have APARs PI18798 and PI18799 applied, you need to add the DB2 SDSNLOAD and SDSNLOD2 libraries to the CICS STEPLIB concatenation.

About this task

This task explains how to manually define the elements that are required in the server.xml configuration file to enable JDBC type 4 driver connectivity to a local or remote Db2 database. Updates that are made to a Db2 database that uses type 4 connectivity do not use the CICS Db2 connection resource. They are not part of a two-phase commit transaction unless the DataSource connection is of type javax.sql.XADataSource, and they are made within a JTA user transaction, see Java Transaction API (JTA).

Procedure

  1. Add the jdbc-4.0 or jdbc-4.1 feature to the featureManager element. This enables use of the dataSource and jdbcDriver elements that are used later in the server.xmlfile.

    Use the jdbc-4.0 feature if you use Java EE 6, or jdbc-4.1 if you use Java EE 7.

    <featureManager>
        <feature>jdbc-4.1</feature>
    </featureManager>
  2. Add dataSource and jdbcDriver elements. The dataSource element must refer to a library definition that specifies the library from which the JDBC driver components (the Db2 JDBC jar and native DLL files) are to be loaded. Typical definitions might look like this:
    <dataSource jndiName="jdbc/defaultCICSDataSource">
        <jdbcDriver libraryRef="db2Lib"/>
        <properties.db2.jcc driverType="4"
            serverName="winmvs2c.hursley.ibm.com" 
            portNumber="41100"
            databaseName="DSNV11P2"
            user="DBUSER"
            password="{xor}Lz4sLCgwLTs="/>
    </dataSource>
    
    <library id="db2Lib">
        <fileset dir="/usr/lpp/db2v11/jdbc/classes" includes="db2jcc4.jar 
            db2jcc_license_cisuz.jar" />
    </library>
    If you do not have APARs PI18798 and PI18799 applied, you need to add a fileset entry for the Db2 native library to the library configuration, for example:
    <fileset dir="/usr/lpp/db2v11/jdbc/lib" />
    The dataSource specifies the jndiName attribute that is referenced by your application program when you are establishing a connection to that data source. The required properties are set in the properties.db2.jcc element as follows:
    driverType
    Description: Database driver type, must be set to 4 to use the pure Java driver.
    Default value: 4
    Required: false
    Data type: int
    serverName
    Description: The host name of server where the database is running. This is the SQL DOMAIN value of the Db2 DISPLAY DDF command.
    Default value: localhost
    Required: false
    Data type: string
    portNumber
    Description: Port on which to obtain database connections. This is the TCPPORT value of the Db2 DISPLAY DDF command.
    Default value: 50000
    Required: false
    Data type: int
    databaseName
    Description: specifies the name for the data source. This is the LOCATION value of the Db2 DISPLAY DDF command.
    Required: true
    Data type: string
    user
    Description: The user ID used to connect to the database.
    Required: true
    Data type: string
    password
    Description: The password of the user ID used to connect to the database. The value can be stored in clear text or encoded form. It is recommended that you encode the password. To do so, use the securityUtility tool with the encode option, see Liberty: securityUtility command.
    Required: true
    Data type: string

Results

The Liberty server, when started, is configured to allow access to Db2 databases through a JDBC type 4 connectivity. For more information, see Java Database Connectivity 4.1.