13.5 Supported Third-Party JDBC Drivers (Not Recommended)

There a few third-party JDBC drivers that can

This section identifies third-party JDBC drivers that are supported but whose use with the Identity Manager JDBC driver is not recommended:

For information about supported third-party drivers that are recommended, see Section 13.4, Supported Third-Party JDBC Drivers (Recommended).

13.5.1 Third-Party JDBC Driver Features

The following table summarizes third-party JDBC driver features:

Table 13-21 Third-Party JDBC Driver Features

Driver

Supports Encrypted Transport?

Supports Retrieval of Auto-Generated Keys?

IBM DB2 UDB Type 3

No

No

Microsoft 2000

No

No

Microsoft 2005

Yes

Yes

13.5.2 JDBC URL Syntaxes

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

Table 13-22 URL Syntaxes

Third-Party JDBC Driver

JDBC URL Syntax

IBM DB2 UDB Type 3

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

Microsoft SQL Server 7, 2000

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

Microsoft SQL Server 2005

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

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

13.5.3 JDBC Driver Class Names

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

Table 13-23 Class Names of Third-Party JDBC Drivers

Third-Party JDBC Driver

Class Name

IBM DB2 UDB Type 3

COM.ibm.db2.jdbc.net.DB2Driver

Microsoft 2000

com.microsoft.jdbc.sqlserver.SQLServerDriver

Microsoft 2005

com.microsoft.sqlserver.jdbc.SQLServerDriver

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.

13.5.4 IBM DB2 Universal Database JDBC Driver

Driver Information

Table 13-24 IBM DB2 Driver Settings

 

Type 3 Driver

Type 4 Driver

Supported Database Versions

8.x and 9.x

8.x and 9.x

Class Name

COM.ibm.db2.jdbc.net.DB2Driver

com.ibm.db2.jcc.DB2Driver

URL Syntax

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

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

Download Instructions

Copy the file from the database server.

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

Copy the file from the database server.

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

File Name

db2java.zip

db2jcc.jar

Documentation URLs

DB2 Information Center

JDBC Programming

DB2 Information Center

JDBC Programming

The type 3 driver was deprecated as of DB2 UDB 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.

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 be time consuming 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.

13.5.5 Microsoft SQL Server 2000 Driver for JDBC

Driver Information

Table 13-25 Microsoft SQL Server 2000 Driver Settings

Supported Database Versions

2000 (8)

Class Name

com.microsoft.jdbc.sqlserver.SQLServerDriver

Type

4

URL Syntax

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

Download Instructions

Microsoft JDBC Downloads

NOTE:See http://support.microsoft.com/lifecycle/?p1=2852 to know more about Microsoft support for MSSQL 2000.

Filenames

  • sqljdbc4.jar (for JDBC4 support with JRE 6.0)

  • sqljdbc.jar (supports JDBC3 with JRE 5.0)

See http://msdn.microsoft.com/en-us/library/ms378526.aspx for more information about selecting the appropriate jar files.

The filename, URL syntax and classname differ (often subtly) from those of the 2005 driver.

Compatibility

The SQL Server 2000 driver only works with SQL Server 2000. 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 (;).

Table 13-26 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 JDBC driver implicitly sets at runtime. Do not explicitly override these settings.

Table 13-27 SQL Server 2000 Settings Not to Override

Display Name

Tag Name

Value

Reuse Statements?

reuse-statements

false

Known Issues

  • Can’t start a 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.Statementobject 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 article:

  • 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 JDBC driver 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.

13.5.6 Microsoft SQL Server 2005 JDBC Driver

Driver Information

Table 13-28 Microsoft SQL Server 2005 Driver Settings

Supported Database Versions

2005 (9)

Class Name

com.microsoft.sqlserver.jdbc.SQLServerDriver

Type

4 (2 if integrated security is enabled)

URL Syntax

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

Download Instructions

Microsoft SQL Server 2005 JDBC Driver

Filenames

  • sqljdbc4.jar (for JDBC4 support with JRE 6.0)

  • sqljdbc.jar (supports JDBC3 with JRE 5.0)

See http://msdn.microsoft.com/en-us/library/ms378526.aspx for more information about selecting the appropriate jar files.

The filename, URL syntax, and classname differ (often subtly) from those of the 2000 driver.

Compatibility

The SQL Server 2005 driver works only with SQL Server 2005. Database server and driver updates are infrequent.

Security

The SQL Server 2005 driver does not support encrypted transport.

URL Properties

Delimit URL properties by using a semicolon (;).

The following table lists values for the integratedSecurity URL property for the SQL Server 2005 driver.

Table 13-29 Values for the integratedSecurity URL Property

Legal Value

Description

false

The default value. JDBC authentication is used.

true

Windows process-level authentication is used.

13.5.7 Microsoft SQL Server 2008 Driver for JDBC

Driver Information

Table 13-30 Microsoft SQL Server 2008 Driver Settings

Supported Database Versions

2008

Class Name

com.microsoft.jdbc.sqlserver.SQLServerDriver

Type

4

URL Syntax

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

Download Instructions

Microsoft JDBC Downloads

NOTE:See http://support.microsoft.com/lifecycle/?p1=2852 to know more about Microsoft support for MSSQL 2000.

Filenames

  • sqljdbc4.jar (for JDBC4 support with JRE 6.0)

  • sqljdbc.jar (supports JDBC3 with JRE 5.0)

See http://msdn.microsoft.com/en-us/library/ms378526.aspx for more information about selecting the appropriate jar files.

The filename, URL syntax and classname differ (often subtly) from those of the 2005 driver.

Compatibility

The SQL Server 2008 driver only works with SQL Server 2008. However, it doesn’t work with database version 7. Database server and driver updates are infrequent. The Microsoft SQL Server JDBC Driver version 2.0 can connect to SQL Server 2008 but does not fully support the new data types or other features that are new in SQL Server 2008. For more information, visit http://msdn.microsoft.com/en-us/library/ms378422.aspx.

Security

The SQL Server 2008 driver does not support encrypted transport.

URL Properties

Delimit URL properties by using a semicolon (;).

Table 13-31 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 JDBC driver implicitly sets at runtime. Do not explicitly override these settings.

Table 13-32 SQL Server 2008 Settings Not to Override

Display Name

Tag Name

Value

Reuse Statements?

reuse-statements

false

Known Issues

  • Can’t start a 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.Statementobject 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 article:

  • 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 JDBC driver 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.

13.5.8 Microsoft SQL Server 2008 R2 Driver for JDBC

Driver Information

Table 13-33 Microsoft SQL Server 2008 R2 Driver Settings

Supported Database Versions

2008 (R2)

Class Name

com.microsoft.jdbc.sqlserver.SQLServerDriver

Type

4

URL Syntax

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

Download Instructions

Microsoft JDBC Downloads

NOTE:See http://support.microsoft.com/lifecycle/?p1=2852 to know more about Microsoft support for MSSQL 2000.

Filenames

  • sqljdbc4.jar (for JDBC4 support with JRE 6.0)

  • sqljdbc.jar (supports JDBC3 with JRE 5.0)

See http://msdn.microsoft.com/en-us/library/ms378526.aspx for more information about selecting the appropriate jar files.

The filename, URL syntax and classname differ (often subtly) from those of the 2005 driver.

Compatibility

The SQL Server 2008 driver only works with SQL Server 2008. However, it doesn’t work with database version 7. Database server and driver updates are infrequent. The Microsoft SQL Server JDBC Driver version 2.0 can connect to SQL Server 2008 but does not fully support the new data types or other features that are new in SQL Server 2008. For more information, visit http://msdn.microsoft.com/en-us/library/ms378422.aspx.

Security

The SQL Server 2008 R2 driver does not support encrypted transport.

URL Properties

Delimit URL properties by using a semicolon (;).

Table 13-34 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 JDBC driver implicitly sets at runtime. Do not explicitly override these settings.

Table 13-35 SQL Server 2008 Settings Not to Override

Display Name

Tag Name

Value

Reuse Statements?

reuse-statements

false

Known Issues

  • Can’t start a 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.Statementobject 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 article:

  • 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 JDBC driver 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.