DB2 Version 10.1 for Linux, UNIX, and Windows

JDBC and SQLJ support has been enhanced

The IBM® Data Server Driver for JDBC and SQLJ contains a number of major enhancements for Version 10.1.

The following enhancements are available in versions of the IBM Data Server Driver for JDBC and SQLJ that are shipped with DB2® for Linux, UNIX, and Windows.

DB2 V10.1 enhancements

The following IBM Data Server Driver for JDBC and SQLJ enhancements are available in version 3.63 or version 4.13, or later.

db2sqljprint support for metadata for temporal tables

The IBM Data Server Driver for JDBC and SQLJ db2sqljprint profile printer utility is enhanced to display metadata for temporal tables. For example:

...
Parameter 3:
   name:START_TS
   label:null
   nullable:false
   sqlType:392
   precision:0
   scale:0
   ccsid:37
   columnLength:32
   tableName:POLICY_DETAIL
   temporal column: ROW BEGIN
 Parameter 4:
   name:END_TS
   label:null
   nullable:false
   sqlType:392
   precision:0
   scale:0
   ccsid:37
   columnLength:32
   tableName:POLICY_DETAIL
   temporal column: ROW END
 Parameter 5:
   name:TRANS_ID
   label:null
   nullable:true
   sqlType:393
   precision:0
   scale:0
   ccsid:37
   columnLength:32
   tableName:POLICY_DETAIL
   temporal column: TRANSACTION START ID
...
System monitoring enhancement

The server time that is returned by DB2SystemMonitor.getServerTimeMicros now includes commit and rollback time.

New method for changing an expired password
New method com.ibm.db2.jcc.DB2Driver.changeDB2Password can be used to change a password, whether or not the password is expired.
Better defaults for global configuration properties
Several defaults for global configuration properties were changed to values that are more appropriate for typical customer environments. The following table lists the old and new defaults.
Configuration property Default before versions 3.63 and 4.13 Default for versions 3.63 and 4.13 or later
db2.jcc.maxRefreshInterval 30 seconds 10 seconds
db2.jcc.maxTransportObjects -1 (unlimited) 1000
db2.jcc.maxTransportObjectWaitTime -1 (unlimited) 1 second
Better defaults for Connection and DataSource properties
Several defaults for Connection and DataSource properties were changed to values that are more appropriate for typical customer environments. The following table lists the old and new defaults.
Connection and DataSource property Default value before versions 3.63 and 4.13 Default value for versions 3.63 and 4.13 or later
maxRetriesForClientReroute If maxRetriesForClientReroute and retryIntervalForClientReroute are not set, the connection is retried for 10 minutes, with a wait time between retries that increases as the length of time from the first retry increases. If maxRetriesForClientReroute and retryIntervalForClientReroute are not set, enableSysplexWLB property is set to true, and the data server is DB2 for z/OS®, the default is 5. Otherwise, the default is the same as for previous driver versions.
retryIntervalForClientReroute If maxRetriesForClientReroute and retryIntervalForClientReroute are not set, the connection is retried for 10 minutes, with a wait time between retries that increases as the length of time from the first retry increases. If maxRetriesForClientReroute and retryIntervalForClientReroute are not set, enableSysplexWLB property is set to true, and the data server is DB2 for z/OS, the default is 0 seconds. Otherwise, the default is the same as for previous driver versions.

FP1: Driver enhancements

In DB2 for Linux, UNIX, and Windows V10.1 Fix Pack 1, the following enhancements are available in version 3.64 or version 4.14 of the driver. Version 3.64 contains JDBC 3.0 or earlier functions. Version 4.14 contains JDBC 4.0 or later functions, and JDBC 3.0 or earlier functions.

FP1: Connections to DB2 for z/OS enhancements

For connections to DB2 for z/OS, the following enhancements are added:

FP2: Driver enhancements

In DB2 for Linux, UNIX, and Windows V10.1 Fix Pack 2, the following enhancements are available in version 3.65 or version 4.15 of the driver. Version 3.65 contains JDBC 3.0 or earlier functions. Version 4.15 contains JDBC 4.0 or later functions, and JDBC 3.0 or earlier functions.

FP2: Support for additional properties

The following Connection and DataSource properties are added:

commandTimeout
Specifies the maximum time in seconds that an application that runs under the IBM Data Server Driver for JDBC and SQLJ waits for a response to any kind of request to the data server before the driver throws an exception.
connectionTimeout
Specifies the maximum time in seconds that the IBM Data Server Driver for JDBC and SQLJ waits for a reply from the data server when the driver attempts to establish a connection to the data server. This property performs the same function as IBM Data Server Driver configuration keyword ConnectTimeout.
enableExtendedDescribe
Allows retrieval of extended describe information to be disabled. Disabling retrieval of extended describe information can yield better performance. However, certain methods do not work when extended describe capability is disabled. Examples of methods that require extended describe capability are methods that return metadata, methods that update ResultSet objects, and methods that retrieve auto-generated keys.
keepAliveTimeOut
Specifies the maximum time in seconds before each TCP KeepAlive signal is sent to the data server. The IBM Data Server Driver for JDBC and SQLJ uses the TCP/IP protocol to communicate with data servers. The default is 15 seconds. A value of 0 means that the timeout value is the default system timeout value.

The keepAliveTimeOut property is used to adjust the TCP/IP KeepAlive parameters on the client, to prevent potential failover issues caused by timeouts within the TCP/IP layer.

memberConnectTimeout
Specifies the amount of time in seconds before an attempt to open a socket to a member of a DB2 for z/OS data sharing group, DB2 pureScale® instance, or IBM Informix® high availability cluster fails. This property performs the same function as IBM Data Server Driver configuration keyword MemberConnectTimeout.

The following global configuration properties are added:

db2.jcc.encryptionAlgorithm and db2.jcc.override.encryptionAlgorithm
These properties are the driver-wide equivalents of the Connection and DataSource property encryptionAlgorithm. These properties indicate whether DES or AES encryption is used when the security mechanism includes encryption. db2.jcc.encryptionAlgorithm provides a default value for the encryptionAlgorithm property. db2.jcc.override.encryptionAlgorithm overrides the encryptionAlgorithm property.
db2.jcc.securityMechanism and db2.jcc.override.securityMechanism
These properties are the driver-wide equivalents of the Connection and DataSource property securityMechanism. These properties indicate the type of security that is used for connections to a data server. db2.jcc.securityMechanism provides a default value for the securityMechanism property. db2.jcc.override.securityMechanism overrides the securityMechanism property.

FP2: Support for special characters in passwords

Passwords can now include all characters in the ASCII range X'20' (decimal 32) through X'7E' (decimal 126), except for the following characters:

FP2: Support for using getString to retrieve special values from a DECFLOAT column

You can now use the java.sql.ResultSet.getString method to retrieve the values NaN, Infinity, or -Infinity from a DECFLOAT column.

FP2: Support for setting any special register value

You can use the DB2DataSource.setSpecialRegisters method to set the value of any DB2 special register. The input to this method is a java.util.Properties object that contains the names and values of the special registers that are to be set.

FP2: Support for retrieving table rows as byte data

You can use the DB2ResultSet.getDBRowAsBytes method to retrieve all the data in a table row as byte data, and to determine the offset of each column value in the row data. You can then use the DB2ResultSet.getDBRowDescriptor method to determine the characteristics of each column value.

FP2: Additional diagnostic information for client reroute

An SQLException with SQL error -30108 or -4498 is thrown when client reroute without seamless failover occurs. The error messages for those SQL errors have been enhanced to provide additional information about the reason for the failover and the state of special registers after failover.

FP2: Enhancements for connections to Informix data servers

For connections to Informix servers, you can now include comments that are enclosed in curly brackets ({}) in SQL statement strings. Some restrictions apply to using curly brackets in the escape syntax for stored procedure calls, because that syntax includes curly brackets.