11.4 Supported Third-Party JDBC Drivers

11.4.1 Third-Party JDBC Driver Features

The following table summarizes third-party JDBC driver features:

Table 11-3 Third-Party JDBC Driver Features

Driver

Supports Encrypted Transport?

Supports Retrieval of Auto-Generated Keys?

BEA* Weblogic* jDriver

No

No

IBM DB2 UDB Type 3

No

No

IBM DB2 UDB Type 4

No

No

Informix

No

No

Microsoft 2000

No

No

MySQL Connector/J

Yes

Yes

Oracle Thin Client

Yes

No

Oracle OCI

Yes

No

PostgreSQL

Yes*

No

Sybase jConnect

Yes

No

* For JDBC 3 (Java 1.4) versions and later.

11.4.2 JDBC URL Syntaxes

The following table lists URL syntaxes for supported third-party JDBC drivers:

Table 11-4 URL Syntaxes

Third-Party JDBC Driver

JDBC URL Syntax

Oracle Thin Client

jdbc:oracle:thin:@ ip-address:1521: sid

Oracle OCI

jdbc:oracle:oci8:@ tns-name

IBM DB2 UDB Type 3

jdbc:db2:// ip-address:6789/ database-name

IBM DB2 UDB Type 4, Universal

jdbc:db2:// ip-address:50000/ database-name

BEA Weblogic jDriver

jdbc:weblogic:mssqlserver4: database-name@ ip-address:1433

Microsoft SQL Server

jdbc:microsoft:sqlserver:// ip-address-or-dns-name:1433;DatabaseName= database-name

Sybase jConnect

jdbc:sybase:Tds: ip-address:2048/ database-name

MySQL Connector/J

jdbc:mysql:// ip-address:3306/ database-name

Informix

jdbc:informix-sqli:// ip-address:1526/ database-name:informixserver= server-id

PostgreSQL

jdbc:postgresql:// ip-address:5432/ database-name

This information is used in conjunction with the Authentication Context parameter. For information on this parameter, see Authentication Context.

11.4.3 JDBC Driver Class Names

The following table lists the fully-qualified Java class names of supported third-party JDBC drivers:

Table 11-5 Class Names of Third-Party JDBC Drivers

Third-party JDBC Driver

Class Name

BEA Weblogic jDriver

weblogic.jdbc.mssqlserver4.Driver

IBM DB2 UDB Type 3

COM.ibm.db2.jdbc.net.DB2Driver

IBM DB2 UDB Type 4, Universal

com.ibm.db2.jcc.DB2Driver

Informix

com.informix.jdbc.IfxDriver

Microsoft 2000

com.microsoft.jdbc.sqlserver.SQLServerDriver

MySQL Connector/J

org.gjt.mm.mysql.Driver

Oracle Thin Client

oracle.jdbc.driver.OracleDriver

Oracle OCI

oracle.jdbc.driver.OracleDriver

PostgreSQL

org.postgresql.Driver

Sybase jConnect 5.5

com.sybase.jdbc2.jdbc.SybDriver

This information is used in conjunction with the JDBC Driver Class Name parameter. For information on this parameter, see Third-Party JDBC Driver Class Name.

11.4.4 BEA Weblogic jDriver for Microsoft SQL Server

Table 11-6 BEA Weblogic jDriver

Supported Database Version:

Microsoft SQL Server 6.5, 7.x, 8.x (2000)

Class Name

weblogic.jdbc.mssqlserver4.Driver

Type

4

URL Syntax

jdbc:weblogic:mssqlserver4: database-name@ ip-address:1433

Download Instructions

Register for free and download the latest version of Weblogic server. Run the installer. The weblogic.jar file is installed in the install-dir/server/lib directory.

BEA Download Center

Filename

weblogic.jar

Documentation URLs

jDriver Documentation

NOTE:The BEA Weblogic driver is included in the supported third-party driver listing to provide JDBC access to Microsoft SQL server 7. Microsoft’s driver supports only version 8 (2000).

Compatibility

The BEA Weblogic driver is backward compatible. Database server and driver updates are infrequent.

Security

The BEA Weblogic driver does not support encrypted transport.

Known Issues

  • The BEA Weblogic driver is not free. It must be purchased and properly licensed.

  • Association values that contain UNIQUEIDENTIFIER columns are inconsistent between driver versions.

    Earlier versions of the BEA Weblogic driver returned a non-standard java.sql.Types value for native UNIQUEIDENTIFIER columns. To compensate, the Driver for JDBC mapped that non-standard type to the standard type java.sql.Types.BINARY because it best mirrored the native database type, which is a 16-byte value. This mapping results in a Base64-encoded association value.

    Later versions of the BEA Weblogic driver return a standard type java.sql.CHAR. This mapping results in a non-Base64-encoded association value, effectively invalidating all associations generated by using earlier versions of the BEA Weblogic driver. This change effectively breaks backward compatibility.

    The best solution to this problem is to continue using the earlier version of the BEA Weblogic driver. If you must upgrade, you must remove all invalidated associations and reassociate all previously-associated objects.

  • The BEA Weblogic driver throws a java.lang.IllegalMonitorStateException when method java.sql.Connection.getConnection(String url, String username, String password) is called on AIX.

11.4.5 IBM DB2 Universal Database JDBC Drivers

The IBM DB2 driver can be either type 3 or type 4.

Type 3

Table 11-7 IBM DB2 Driver: Type 3

Supported Database Versions:

7.x

Class Name:

COM.ibm.db2.jdbc.net.DB2Driver

Type

3

URL Syntax:

jdbc:db2:// ip-address:6789/ database-name

Download Instructions:

Copy the file from the database server.

file:/// database-installation-directory/java

Filename:

db2java.zip

Documentation URLs:

DB2 Information Center

JDBC Programming

IMPORTANT:The type 3 driver is deprecated for version 8.

Compatibility

The IBM DB2 driver can best be characterized as version-hypersensitive. It is not compatible across major or minor versions of DB2, including FixPacks. For this reason, we recommend that you use the file installed on the database server.

IMPORTANT:The IBM DB2 driver must be updated on the Identity Manager or Remote Loader server every time the target database is updated, even if only at the FixPack level.

Security

The IBM DB2 driver does not support encrypted transport.

Known Issues

  • A version mismatch usually results in connectivity-related failures.

    The most common problem experienced with the IBM DB2 driver is because of a driver/database version mismatch. The symptom of a version mismatch is connectivity-related failures such as "CLI0601E Invalid statement handle or statement is closed." To remedy the problem, overwrite the db2java.zip file on the Identity Manager or Remote Loader server with the version installed on the database server.

  • It’s very difficult to diagnose and remedy Java-related errors on the database server.

    Numerous error conditions and error-codes can arise when you attempt to install and execute user-defined stored procedures and functions written in Java. Diagnosing them can prove time intensive and frustrating. A log file ( db2diag.log on the database server) can often provide additional debugging information. In addition, all error codes are documented and available online.

Type 4: Universal Driver

Table 11-8 IBM DB2 Driver: Type 4

Supported Database Versions

8.x

Class Name

com.ibm.db2.jcc.DB2Driver

Type

4

URL Syntax

jdbc:db2:// ip-address:50000/ database-name

Download Instructions

Download as part of the latest FixPack (recommended).

IBM Support & Downloads

or

Copy the file from the database server.

file:/// database-installation-directory/java

Filename

db2jcc.jar, db2jcc_license_cu.jar, db2jcc_javax.jar (optional)

Documentation URLs

DB2 Information Center

DB2 Universal JDBC Driver

Security under the DB2 Universal JDBC Driver

NOTE:Unlike the type 3 driver, the type 4 driver has only a minimal set of defined error codes. This absence inhibits the Driver for JDBC’s ability to distinguish between connectivity, retry, authentication, and fatal error conditions.

Compatibility

The IBM DB2 driver is backward compatible. However, it doesn’t work with database version 7. Database server updates are frequent. Driver updates are infrequent.

Security

The IBM DB2 driver supports a variety of authentication security mechanisms but does not support encrypted transport.

Known Issues

  • It’s very difficult to diagnose and remedy Java-related errors on the database server.

    Numerous error conditions and error codes can arise when you attempt to install and execute user-defined stored procedures and functions written in Java. Diagnosing these can prove time intensive and frustrating. A log file ( db2diag.log on the database server) can often provide additional debugging information. In addition, all error codes are documented and available online.

11.4.6 Informix JDBC Driver

Table 11-9 Informix JDBC Driver

Supported Database Versions

Dynamic Server 7.x, 9.x

Class Name

com.informix.jdbc.IfxDriver

Type

4

URL Syntax

jdbc:informix-sqli:// ip-address:1526/ database-name:informixserver= server-id

Download Instructions

Download URL

Filenames

ifxjdbc.jar, ifxjdbcx.jar (optional)

Documentation URLs

Informix Information Center

Informix JDBC Driver

Compatibility

The Informix driver is backward compatible. Database server updates and driver updates are infrequent.

Security

The Informix driver does not support encrypted transport.

Required Parameter Settings for ANSI-Compliant Databases

The following table lists driver parameters that must be explicitly set for the Driver for JDBC to interoperate with the Informix driver against ANSI-compliant databases.

Table 11-10 Driver Settings for ANSI-Compliant Databases

Display Name

Tag Name

Value

Supports schemas in metadata retrieval?

supports-schemas-in-metadata-retrieval

See Supports Schemas in Metadata Retrieval?.

false

Force username case:

force-username-case

See Force Username Case.

upper

Dynamic Parameter Defaults

The following table lists driver compatibility parameters that the Driver for JDBC implicitly sets at runtime. Do not override these settings.

Table 11-11 Informix JDBC Settings Not to Override

Display Name

Tag Name

Value

Function return method:

function-return-method

See Function Return Method.

result set

Known Issues

  • Schema names cannot be used to retrieve metadata against an ANSI-compliant database. Set the driver compatibility parameter Supports Schemas in Metadata Retrieval? to Boolean False. The database objects available for metadata retrieval are those visible to the database user who authenticated to the database. Schema qualifiers cannot be used to identify database objects. Therefore, to avoid naming collisions (such as, owner1.table1, owner2.table1), give the database authentication user only SELECT privileges on objects being synchronized.

  • When used against ANSI-compliant databases, usernames must be in uppercase. Set the driver compatibility parameter Force Username Case to upper.

11.4.7 Microsoft SQL Server 2000 Driver for JDBC

Table 11-12 Microsoft SQL Server 2000 Driver Settings

Supported Database Versions:

8 (2000)

Class Name

com.microsoft.jdbc.sqlserver.SQLServerDriver

Type

4

URL Syntax

jdbc:microsoft:sqlserver:// ip-address-or-dns-name:1433;DatabaseName= database-name

Download Instructions

Microsoft JDBC Downloads

Filenames

msbase.jar, mssqlserver.jar, msutil.jar

Microsoft has released a 2005 version of this driver. However, the filename, URL syntax, and classname differ.

Compatibility

The SQL Server 2000 driver is backward compatible. However, it doesn’t work with database version 7. Database server and driver updates are infrequent.

Security

The SQL Server 2000 driver does not support encrypted transport.

URL Properties

Delimit URL properties by using a semicolon (;).

The following table lists values for the SelectMethod URL property for the SQL Server 2000 driver.

Table 11-13 Values for the SelectMethod URL Property

Legal Value

Description

direct

The default value. Doesn’t allow for multiple active statements on a single connection

cursor

Allows for multiple active statements on a single connection

Dynamic Parameter Defaults

The following table lists driver compatibility parameters that the Driver for JDBC implicitly sets at runtime. Do not explicitly override these settings.

Table 11-14 SQL Server 2000 Settings Not to Override

Display Name

Tag Name

Value

Reuse Statements?

reuse-statements

false

Known Issues

  • Can’t start manual transaction because of cloned connections.

    An implementation anomaly that doesn’t allow concurrent statements to be active on the same connection causes the most common problem experienced with the SQL Server 2000 driver. Unlike other third-party implementations, the SQL Server 2000 driver can have only one java.sql.Statement object active at a time on a given connection.

    If you attempt to use more than one statement object, the following error is issued: “Can’t start manual transaction mode because there are cloned connections.” This error can occur only if the driver compatibility parameter Reuse Statements? is set to Boolean True. As a best practice, never explicitly set this parameter. Instead, defer to the dynamic default value.

    An alternative is to place the delimited property ;SelectMethod=cursor at the end of the URL string. For additional information on this issue, consult the following support articles:

  • Association values that contain UNIQUEIDENTIFIER columns are inconsistent between driver versions.

    Earlier versions of the SQL Server 2000 driver returned a non-standard java.sql.Types value for native UNIQUEIDENTIFIER columns. To compensate, the Driver for JDBC mapped that non-standard type to the standard type java.sql.Types.BINARY because it best mirrored the native database type, which is a 16-byte value. This mapping results in a Base64-encoded association value.

    Later versions of the SQL Server 2000 driver return a standard type java.sql.CHAR. This mapping results in a non-Base64-encoded association value, effectively invalidating all associations generated by using earlier versions of the SQL Server 2000 driver. This change effectively breaks backward compatibility.

    The best solution to this problem is to continue using the earlier version of the SQL Server 2000 driver. If you must upgrade, remove all invalidated associations and reassociate all previously-associated objects.

11.4.8 MySQL Connector/J JDBC Driver

Table 11-15 Settings for the MySQL Connector/J JDBC Driver

Supported Database Versions

3.x, 4.x

Class Name

org.gjt.mm.mysql.Driver

Type

4

URL Syntax

jdbc:mysql:// ip-address:3306/ database-name

Download Instructions

Download and extract. The jar file is located in the extract-dir/mysql-connector-java- version directory.

MySQL Connector/J

Filename

mysql-connector-java- version-bin.jar

Documentation URLs

MySQL Connector/J Documentation

Connecting Over SSL

Also see Generation/Retrieval Method (Table-Global).

Compatibility

The Connector/J driver is backward compatible. Database server updates are frequent. Driver updates are infrequent.

Security

The Connector/J driver supports JSSE (Java Secure Sockets Extension) SSL-encrypted transport.

Required Parameter Settings for MyISAM Tables

The following table lists driver parameters that you must set so that the Driver for JDBC can interoperate with the Connector/J driver against MyISAM tables.

Table 11-16 Settings for MyISAM Tables

Display Name

Tag Name

Value

Use manual transactions?

use-manual-transactions

false

11.4.9 Oracle Thin Client JDBC Driver

Table 11-17 Oracle Thin Client Settings

Supported Database Versions

8i, 9i, 10g

Class Name

oracle.jdbc.driver.OracleDriver

Type

4

URL Syntax

jdbc:oracle:thin:@ ip-address:1521: sid

Download Instructions

Register for free and download.

Oracle Technology Network

Filenames

  • ojdbc14.jar, orail8n.jar (optional)

Filenames for different JVM versions

Documentation URLs

Oracle Advanced Security

JDBC FAQ

Compatibility

The Thin Client driver is backward compatible. Database server updates and driver updates are infrequent.

Oracle releases thin client drivers for various JVMs. Even though all of them work with this product, we recommend that you use the 1.4 version.

Security

The Thin Client driver supports Oracle Advanced Security encrypted transport.

Dynamic Parameter Defaults

The following table lists driver compatibility parameters that the Driver for JDBC implicitly sets at runtime. Do not explicitly override these settings.

Table 11-18 Oracle Thin Client Settings Not to Override

Display Name

Tag Name

Value

Number of returned result sets:

handle-stmt-results

single

Connection Properties

The following table lists important connection properties for this driver.

Table 11-19 Oracle Thin Client: Connection Properties

Property

Significance

includeSynonyms

If the value of this property is true, synonym column metadata is available.

ORACLE.NET.ENCRYPTION_CLIENT

Defines the level of security that the client wants to negotiate with the server.

ORACLE.NET.ENCRYPTION_TYPES_CLIENT

Defines the encryption algorithm to be used.

ORACLE.NET.CRYPTO_CHECKSUM_CLIENT

Defines the level of security that it wants to negotiate with the server for data integrity.

ORACLE.NET.CRYPTO_CHEKSUM_TYPES_CLIENT

Defines the data integrity algorithm to be used.

Known Issues

  • High CPU utilization triggered by execution of embedded SQL statements:

    The most common problem experienced with this driver is high CPU utilitization. As a result, this driver always indicates that more results are available from calls to method java.sql.Statement.execute(String stmt), which can lead to an infinite loop condition. This condition occurs only if all the following happen:

    • A value other than single, no or one in the driver compatibility parameter Number of Returned Result Sets is being executed.

    • An embedded SQL statement is being executed.

    • The type of statement is not explicitly specified.

    To avoid the conditions that produce high CPU utilization:

    • Do not explicitly set this parameter. Defer to the dynamic default value.

    • Always place a jdbc:type attribute on embedded <jdbc:statement> elements.

      NOTE:The jdbc namespace prefix must map to urn:dirxml:jdbc.

  • Can’t retrieve synonym column metadata:

    The connection property includeSynonyms must be set to true.

  • Can’t see synonym table primary key constraint:

    The only known solution to this problem is to use a view.

11.4.10 Oracle OCI JDBC Driver

Table 11-20 Oracle OCI JDBC Driver Settings

Supported Database Versions

8i, 9i, 10g

Class Name

oracle.jdbc.driver.OracleDriver

Type

2

URL Syntax

jdbc:oracle:oci8: @tns-name

Download Instructions

The SQLNet infrastructure is the main requirement for OCI. SQLNet can run on any platform that Oracle supports, not just Linux.

For Linux, register for free and download the following:

Filenames

  • ojdbc14.jar, orail8n.jar (optional)

Filenames for different JVM versions

Documentation URLs

Oracle Call Interface

OCI FAQ

Oracle Advanced Security

Instant Client

Instant Client

You can install SQLNet by doing either of the following:

  • Use the Instant Client (which bypasses unneeded components of the full version).

  • Download the full package from Oracle.

If the database is running on the same server as Identity Manager, you don’t need to install SQLNet because SQLNet comes as standard on the database server.

The Oracle OCI driver is essentially the same as the Thin Client driver. See Section 11.4.9, Oracle Thin Client JDBC Driver. The OCI client differs in the following ways:

  • The OCI Client supports clustering, failover, and high availability.

  • The OCI Client has additional security options.

For information on setting up the Oracle OCI Client, see Section K.0, Setting Up an OCI Client on Linux.

11.4.11 PostgreSQL JDBC Driver

Table 11-21 PostgreSQL JDBC Driver Settings

Supported Database Versions

6.x, 7.x, 8.x

Class Name

org.postgresql.Driver

Type

4

URL Syntax

jdbc:postgresql:// ip-address:5432/ database-name

Download Instructions

JDBC Driver Download

Documentation URLs

JDBC Driver Documentation

Using SSL

NOTE:The filename of the PostgreSQL varies by database version.

Compatibility

The latest builds of the PostgreSQL driver are backward compatible through server version 7.2. Database server updates and driver updates are frequent.

Security

The PostgreSQL driver supports SSL-encrypted transport for JDBC 3 driver versions.

11.4.12 Sybase Adaptive Server Enterprise JConnect JDBC Driver

Table 11-22 Settings for the Sybase Adaptive Server Enterprise Driver

Supported Database Versions

Adaptive Server* Enterprise 11.x, 12.x

Class Name

com.sybase.jdbc2.jdbc.SybDriver (for jconn2.jar) com.sybase.jdbc3.jdbc.SybDriver (for jconn3.jar)

Type

4

URL Syntax

jdbc:sybase:Tds: ip-address:2048/ database-name

Download Instructions

Sybase Downloads

Filenames

jconn2.jar or jconn3.jar

Documentation URLs

jConnect Documentation

Compatibility

The Adaptive Server driver is backward compatible. Database server updates and driver updates are infrequent.

Security

The Adaptive Server driver supports SSL-encrypted transport. To enable SSL encryption, you must specify a custom socket implementation via the SYBSOCKET_FACTORY connection property. For additional information on how to set connection properties, see Connection Properties.

Connection Properties

The SYBSOCKET_FACTORY property can be used to specify the class name of a custom socket implementation that supports encrypted transport.