JDBC differences between versions of the IBM Data Server Driver for JDBC and SQLJ
Before you can upgrade your JDBC applications from older to newer versions of the IBM® Data Server Driver for JDBC and SQLJ, you need to understand the differences between those drivers.
Supported methods
For a list of methods that the IBM Data Server Driver for JDBC and SQLJ supports, see the information on driver support for JDBC APIs.
Use of progressive streaming by the JDBC drivers
For IBM Data Server Driver for JDBC and SQLJ, Version 3.50 or later, progressive streaming, which is also known as dynamic data format, behavior is the default for LOB retrieval, for connections to Db2® on Linux®, UNIX, and Windows systems Version 9.5 or later.
Progressive streaming is supported in the IBM Data Server Driver for JDBC and SQLJ Version 3.1 or later, but for IBM Data Server Driver for JDBC and SQLJ version 3.2 or later, progressive streaming behavior is the default for LOB and XML retrieval, for connections to Db2 for z/OS® Version 9.1 or later.
Previous versions of the IBM Data Server Driver for JDBC and SQLJ did not support progressive streaming.
…
ResultSet rs = stmt.executeQuery("SELECT CLOBCOL FROM MY_TABLE");
rs.next(); // Retrieve the first row of the ResultSet
Clob clobFromRow1 = rs.getClob(1);
// Put the CLOB from the first column of
// the first row in an application variable
String substr1Clob = clobFromRow1.getSubString(1,50);
// Retrieve the first 50 bytes of the CLOB
rs.next(); // Move the cursor to the next row.
// clobFromRow1 is no longer available.
// String substr2Clob = clobFromRow1.getSubString(51,100);
// This statement would yield an SQLException
Clob clobFromRow2 = rs.getClob(1);
// Put the CLOB from the first column of
// the second row in an application variable
rs.close(); // Close the ResultSet.
// clobFromRow2 is also no longer available.
After
you execute rs.next() to position the cursor at
the second row of the ResultSet, the CLOB value
in clobFromRow1 is no longer available to you. Similarly, after you
execute rs.close() to close the ResultSet,
the values in clobFromRow1 and clobFromRow2 are no longer available.To avoid errors that are due to this changed behavior, you need to take one of the following actions:
- Modify your applications.
Applications that retrieve LOB data into application variables can manipulate the data in those application variables only until the cursors that were used to retrieve the data are moved or closed.
- Disable progressive streaming by setting the
progressiveStreaming
property toDB2BaseDataSource.NO
(2).
ResultSetMetaData values for IBM Data Server Driver for JDBC and SQLJ
For the IBM Data Server Driver for JDBC and
SQLJ version 4.0 or later,
the default behavior of ResultSetMetaData.getColumnName and
ResultSetMetaData.getColumnLabel
differs from the default behavior for earlier JDBC
drivers.
If you need to use IBM Data Server Driver for JDBC and
SQLJ version 4.0
or later, but your applications need to return the
ResultSetMetaData.getColumnName and
ResultSetMetaData.getColumnLabel
values that were returned with older JDBC drivers,
you can set the useJDBC4ColumnNameAndLabelSemantics Connection and
DataSource
property to DB2BaseDataSource.NO
(2).
Batch updates with automatically generated keys have different results in different driver versions
With the IBM Data Server Driver for JDBC and SQLJ version 3.52 or later, preparing an SQL statement for retrieval of automatically generated keys is supported.
With the IBM Data Server Driver for JDBC and SQLJ version 3.50 or version 3.51, preparing an SQL statement for retrieval of automatically generated keys and using the PreparedStatement object for batch updates causes an SQLException.
Versions of the IBM Data Server Driver for JDBC and SQLJ before Version 3.50 do not throw an SQLException when an application calls the addBatch or executeBatch method on a PreparedStatement object that is prepared to return automatically generated keys. However, the PreparedStatement object does not return automatically generated keys.
Batch updates of data on Db2 for z/OS servers have different results in different driver versions
After you successfully invoke an executeBatch statement, the IBM Data Server Driver for JDBC and SQLJ returns an array. The purpose of the array is to indicate the number of rows that are affected by each SQL statement that is executed in the batch.
If the following conditions are true, the IBM Data Server Driver for JDBC and
SQLJ returns
Statement.SUCCESS_NO_INFO
(-2) in the array elements:
- The application is connected to a subsystem that is in Db2 for z/OS Version 8 new-function mode, or later.
- The application is using Version 3.1 or later of the IBM Data Server Driver for JDBC and SQLJ.
- The IBM Data Server Driver for JDBC and SQLJ uses multi-row INSERT operations to execute batch updates.
This occurs because with multi-row INSERT, the database server executes the entire batch as a single operation, so it does not return results for individual SQL statements.
If you are using an earlier version of the IBM Data Server Driver for JDBC and SQLJ, or you are connected to a data source other than Db2 for z/OS Version 8 or later, the array elements contain the number of rows that are affected by each SQL statement.
Batch updates and deletes of data on Db2 for z/OS servers have different size limitations in different driver versions
Before IBM Data Server Driver for JDBC and SQLJ version 3.59 or 4.9, a DisconnectException with error code -4499 was thrown for IBM Data Server Driver for JDBC and SQLJ type 4 connectivity to Db2 for z/OS if the size of an update or delete batch was greater than 32KB. Starting with version 3.59 or 4.9, this restriction no longer exists, and the exception is no longer thrown.
Initial value of the CURRENT CLIENT_ACCTNG special register
For a JDBC or SQLJ application that runs under the IBM Data Server Driver for JDBC and SQLJ version 2.6 or later, using type 4 connectivity, the initial value for the Db2 for z/OS CURRENT CLIENT_ACCTNG special register is the concatenation of the Db2 for z/OS version and the value of the clientWorkStation property. For any other JDBC driver, version, and connectivity, the initial value is not set.
Properties that control the use of multi-row FETCH
- For IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on Db2 for z/OS, the IBM Data Server Driver for JDBC and SQLJ uses only the enableRowsetSupport property to determine whether to use multi-row FETCH for scrollable or forward-only cursors.
- For IBM Data Server Driver for JDBC and SQLJ type 4 connectivity to z/OS or Db2 on Linux, UNIX, and Windows systems, or IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on Db2 on Linux, UNIX, and Windows systems, the driver uses the enableRowsetSupport property to determine whether to use multi-row FETCH for scrollable cursors, if enableRowsetSupport is set. If enableRowsetSupport is not set, the driver uses the useRowsetCursor property to determine whether to use multi-row FETCH.
JDBC 1 positioned updates and deletes and multi-row FETCH
Before version 3.7 and version 3.51 of the IBM Data Server Driver for JDBC and SQLJ, multi-row FETCH from Db2 for z/OS tables was controlled by the useRowsetCursor property. If an application contained JDBC 1 positioned update or delete operations, and multi-row FETCH support was enabled, the IBM Data Server Driver for JDBC and SQLJ permitted the update or delete operations, but unexpected updates or deletes might occur.
Starting with version 3.7 and 3.51 of the IBM Data Server Driver for JDBC and SQLJ, the enableRowsetSupport property enables or disables multi-row FETCH from Db2 for z/OS tables or Db2 on Linux, UNIX, and Windows systems tables. The enableRowsetSupport property overrides the useRowsetCursor property. If multi-row FETCH is enabled through the enableRowsetSupport property, and an application contains a JDBC 1 positioned update or delete operation, the IBM Data Server Driver for JDBC and SQLJ throws an SQLException.
Valid forms of prepareStatement for retrieval of automatically generated keys from a Db2 for z/OS view
Starting with version 3.57 or version 4.7 of the IBM Data Server Driver for JDBC and SQLJ, if you are inserting data into a view on a Db2 for z/OS data server, and you want to retrieve automatically generated keys, you need to use one of the following methods to prepare the SQL statement that inserts rows into the view:
Connection.prepareStatement(sql-statement, String [] columnNames);
Connection.prepareStatement(sql-statement, int [] columnIndexes);
Statement.executeUpdate(sql-statement, String [] columnNames);
Statement.executeUpdate(sql-statement, int [] columnIndexes);
Data loss for TIMESTAMP(p) column updates using setString
If you use a setString call to pass an input value to a TIMESTAMP(p) column, it is possible to send a value with a precision of greater than nine to the column.
Before version 3.59 or version 4.9 of the IBM Data Server Driver for JDBC and
SQLJ, data loss could occur if the sendDataAsIs
property was set to false
, and the precision of the input value was greater than
nine.
Starting with version 3.59 and version 4.9 of the IBM Data Server Driver for JDBC and SQLJ, data loss does not occur if the TIMESTAMP(p) column is large enough to accommodate the input value.
Special processing for java.sql.Timestamp input data
Before version 3.63 or 4.13 of the IBM Data Server Driver for JDBC and SQLJ, if the target data type is not known, the target data server supports TIMESTAMP WITH TIME ZONE, and the input data type is java.sql.Timestamp, the driver chooses TIMESTAMP WITH TIME ZONE as the target type. Starting with version 3.63 or 4.13, if the target data type is not known, the target data server supports TIMESTAMP WITH TIME ZONE, and the input data type is java.sql.Timestamp, the driver chooses TIMESTAMP WITH TIME ZONE as the target type, except when the input object has a value of 0001-01-01-00:00:00.000000 or 9999-12-31-23:59:59.999999. In those cases, the driver chooses the TIMESTAMP type, without a time zone. Use of the TIMESTAMP data type in those two cases prevents an overflow condition from occurring because of adjustment of the value for the implied time zone. The implied time zone is the time zone of the Java™ virtual machine (JVM). Starting with version 3.65 or 4.15, the timestamps for which the driver chooses the TIMESTAMP type, without the time zone, are 0001-01-01, with any time, or 9999-12-31, with any time.
Change to result set column name for getColumns
In version 4.12 or earlier of the IBM Data Server Driver for JDBC and SQLJ, the DatabaseMetaData.getColumns method returned a result set that contained a column named SCOPE_CATLOG. In version 4.13 or later of the IBM Data Server Driver for JDBC and SQLJ, the name of that column is SCOPE_CATALOG. If you want the IBM Data Server Driver for JDBC and SQLJ to continue to use the column name SCOPE_CATLOG, set DataSource or Connection property useJDBC41DefinitionForGetColumns to DB2BaseDataSource.NO (2).
Changes to defaults for global configuration properties db2.jcc.maxRefreshInterval, db2.jcc.maxTransportObjects, and db2.jcc.maxTransportObjectWaitTime
The default values for global configuration properties db2.jcc.maxRefreshInterval, db2.jcc.maxTransportObjects, and db2.jcc.maxTransportObjectWaitTime change in version 3.63 and 4.13 of the IBM Data Server Driver for JDBC and SQLJ. 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 |
Changes to the default value for Connection and DataSource property timerLevelForQueryTimeOut
The default value for Connection and DataSource property timerLevelForQueryTimeOut changes in version 4.26 of the IBM Data Server Driver for JDBC and SQLJ. The following table lists the old and new defaults.
Connection and DataSource property | Default value before version 4.26 | Default value for version 4.26 or later |
---|---|---|
timerLevelForQueryTimeOut | 1 (QUERYTIMEOUT_STATEMENT_LEVEL) | 2 (QUERYTIMEOUT_CONNECTION_LEVEL) |
Changes to default values for Connection and DataSource property maxTransportObjects
The default value for Connection and DataSource properties maxTransportObjects changes in version 3.63 and 4.13 of the IBM Data Server Driver for JDBC and SQLJ. 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 |
---|---|---|
maxTransportObjects | -1 (unlimited) | 1000 |
Change to automatic client reroute for a connection to a Db2 for z/OS data sharing group (driver versions 3.72.52 and 4.25.13)
Starting with IBM Data Server Driver for JDBC and SQLJ versions 3.72.52 and 4.25.13, for a connection to a Db2 for z/OS data sharing group, during automatic client reroute, the connection is retried once, using the IP address that is associated with the data sharing group.
Changes to the default values for Connection and DataSource properties maxRetriesForClientReroute and retryIntervalForClientReroute for connections to a Db2 for z/OS data sharing group
For a connection to a Db2 for z/OS data sharing group, the default values for the Connection and DataSource properties maxRetriesForClientReroute and retryIntervalForClientReroute differ depending on the IBM Data Server Driver for JDBC and SQLJ version, as indicated in the following table.
Connection and DataSource property | Default value |
---|---|
maxRetriesForClientReroute |
|
retryIntervalForClientReroute |
|
Changes to the default values for Connection and DataSource properties maxRetriesForClientReroute and retryIntervalForClientReroute for connections to Db2 on Linux, UNIX, and Windows systems
For a connection to a Db2 on Linux, UNIX, and Windows systems, the default values for the Connection and DataSource properties maxRetriesForClientReroute and retryIntervalForClientReroute differ depending on the IBM Data Server Driver for JDBC and SQLJ version, as indicated in the following table.
Connection and DataSource property | Default value |
---|---|
maxRetriesForClientReroute and retryIntervalForClientReroute |
|
Changes to the meaning of a retry for Connection and DataSource property maxRetriesForClientReroute for connections to a Db2 for z/OS data sharing group
The meaning of a retry change in versions 3.66 and 4.16, and again in version 4.25 of the IBM Data Server Driver for JDBC and SQLJ for connections to a Db2 for z/OS data sharing group.
The following table shows the meaning of a retry for different IBM Data Server Driver for JDBC and SQLJ versions.
Driver version | Retry behavior |
---|---|
Before versions 3.66 and 4.16 | A retry is one attempt to connect to one member of the data sharing group. |
Versions 3.66 through 3.72, and versions 4.16 through 4.24 | A retry is one attempt to connect to each member of the data sharing group other than the failed member, and then to the group IP address. This behavior change might make it necessary to lower the value of maxRetriesForClientReroute. |
Version 4.25 or later | A retry is one attempt to connect to the group IP address of the data sharing group. If the
enableSysplexWLB property is set to |
Change to the meaning of a retry for connections to a Db2 on Linux, UNIX, and Windows systems Db2 pureScale instance (driver versions 3.67 and 4.17)
The meaning of a retry for automatic client reroute changes in version 3.67 and 4.17 of the IBM Data Server Driver for JDBC and SQLJ for connections to a Db2 on Linux, UNIX, and Windows systems Db2 pureScale® instance.
The following table shows the old and new meanings.
Meaning of a retry before versions 3.67 and 4.17 | Meaning of a retry for versions 3.67 and 4.17, or later |
---|---|
One attempt to connect to one member of the Db2 pureScale instance. | One attempt to connect to all members of the Db2 pureScale instance. This change might make it necessary to lower the value of maxRetriesForClientReroute. |
Changes to default values for client info properties for IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on Db2 for z/OS
The default values for client info properties for IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on Db2 for z/OS change in version 3.64 of the IBM Data Server Driver for JDBC and SQLJ. The following table lists the old and new defaults.
Client into property | Default value before versions 3.64 | Default value for versions 3.64 or later |
---|---|---|
clientApplicationInformation | Empty string | The string "db2jcc_application" |
clientAccountingInformation | Empty string | Empty string |
clientWorkstation | Empty string | The string "RRSAF". |
clientUser | Empty string | The user ID that was specified for the connection. If no user ID was specified, the RACF® user ID is used. |
Changes to maximum lengths for client info properties for Db2 for z/OS
The maximum lengths for client info properties for IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on Db2 for z/OS change in version 3.66 and 4.16 of the IBM Data Server Driver for JDBC and SQLJ. The following table lists the old and new lengths.
Client into property | Maximum length before versions 3.68 and 4.18 | Maximum length for versions 3.68 and 4.18, or later |
---|---|---|
clientApplicationInformation | 32 | 255 |
clientAccountingInformation | 22 | 255 |
clientWorkstation | 18 | 255 |
clientUser | 16 | 128 |
Change to default for global configuration property db2.jcc.enableInetAddressGetHostName
Starting with versions 3.65 and 4.15 of the IBM Data Server Driver for JDBC and
SQLJ, the default for
db2.jcc.enableInetAddressGetHostName is false
. For versions
3.64 or earlier, the default is
true
.
Changes to the behavior of the xmlFormat property
Starting with version 4.15 of the IBM Data Server Driver for JDBC and SQLJ, the xmlFormat Connection and DataSource property applies only to XML data retrieval, instead of to XML data update and retrieval. In addition, the default behavior has changed to retrieval of XML data in textual XML format, regardless of whether the data server supports binary XML format.
For update of data in XML columns, xmlFormat has no effect. If the input data is binary XML data, and the data server does not support binary XML data, the input data is converted to textual XML data. Otherwise, no conversion occurs.
Changes to the default value of Connection and DataSource property useCachedCursor
For connections to Db2 on Linux, UNIX, and Windows systems, the default value of the useCachedCursor Connection and DataSource property has changed.
The default is:
false
, if the driver is at one of the following levels:- Version 3.67 or 4.17, or later
- Version 3.64
true
, for any other driver versions.
If the driver version is 3.67 or 4.17, or later, or 3.64 , and the deferPrepares property is set to true, the driver behaves as if useCachedCursor is set to false, regardless of the useCachedCursor setting.
Changes to driver behavior for failure of seamless failover during automatic client reroute
Before versions 3.67 and 4.17 of the IBM Data Server Driver for JDBC and SQLJ, seamless failover error behavior was that after 10 attempts to reconnect to a failover server and execute the SQL statement that failed previously, the driver issued an SQLException with SQL error code -20542.
Starting with versions 3.67 and 4.17 of the IBM Data Server Driver for JDBC and SQLJ, seamless failover error behavior is that after one attempt to reconnect to a failover server and execute the SQL statement that failed previously, the driver issues an SQLException with SQL error code -4228.
Change to trace polling default
The default for db2.jcc.tracePolling is false before Version 3.69 of the IBM Data Server Driver for JDBC and SQLJ, and the default is true for Version 3.69 or later.
Changes to driver behavior on failure of seamless failover for connections to Db2 for z/OS
Before version 4.32 of the IBM Data Server Driver for JDBC and SQLJ, when seamless failover for connections to a Db2 for z/OS data sharing group failed, SQL errors such as -4498, -30108, or -20542 were returned.
Starting with Version 4.32 of the driver, property enableSeamlessFailoverErrorCodes controls the SQL error code that is returned. The default behavior is that SQL error -4499 is returned for all seamless failover errors.
Changes to the security mechanism in driver version 4.33
Before version 4.33 of the
IBM Data Server Driver for JDBC and
SQLJ, the default security mechanism
is CLEAR_TEXT_PASSWORD_SECURITY
(3). If the data server does not support
CLEAR_TEXT_PASSWORD_SECURITY
(3), but supports
ENCRYPTED_USER_AND_PASSWORD_SECURITY
(9), the driver changes the security mechanism
to ENCRYPTED_USER_AND_PASSWORD_SECURITY
(9) and attempts to connect to the data
server. Any other mismatch in security mechanism support between the requester and the data server
results in an error.
- The default security mechanism is
ENCRYPTED_USER_AND_PASSWORD_SECURITY
. If the data server does not supportENCRYPTED_USER_AND_PASSWORD_SECURITY
, but supportsCLEAR_TEXT_PASSWORD_SECURITY
, the driver changes the security mechanism toCLEAR_TEXT_PASSWORD_SECURITY
and attempts to connect to the data server.When the driver retries the connection usingCLEAR_TEXT_PASSWORD_SECURITY
, performance might be degraded. To minimize the performance impact, take one of the following actions:- Explicitly set the security mechanism to CLEAR_TEXT_PASSWORD_SECURITY on the client side.
- Change the data server setting to support ENCRYPTED_USER_AND_PASSWORD_SECURITY.
Any mismatch in security mechanism support between the requester and the data server other than
CLEAR_TEXT_PASSWORD_SECURITY
andENCRYPTED_USER_AND_PASSWORD_SECURITY
results in an error. - A connection to a Db2 for z/OS subsystem
or data sharing group that uses the default security mechanism of
ENCRYPTED_USER_AND_PASSWORD_SECURITY
(9) and AES encryption is successful only if the z/OS Integrated Cryptographic Service Facility (ICSF) is enabled on the z/OS system where each subsystem or data sharing member is installed. ICSF is required for decrypting the user ID and password. If ICSF is not installed, you need to set the security mechanism toCLEAR_TEXT_PASSWORD_SECURITY
(3).
Changes to the security mechanism in driver version 4.34
- When you explicitly set the security mechanism to
ENCRYPTED_USER_AND_PASSWORD_SECURITY
(9), and a retry process with an alternative security mechanism is not defined, the driver does not retry the connection withCLEAR_TEXT_PASSWORD_SECURITY
(3). The driver throws an exception withReason: Security mechanism not supported
. - When ICSF or the cryptoprocessor are not enabled on a z/OS system on which a Db2 for z/OS data server runs, the driver returns an
error with
Reason: Local security service non-retryable error
. The driver retries the connection by opening a new socket usingCLEAR_TEXT_PASSWORD_SECURITY
(3). - When FIPS 140-3 cryptographic security is enabled for the Java runtime environment or SDK for Java, and the
connection to the data server uses
ENCRYPTED_USER_AND_PASSWORD_SECURITY
(9) by default, the driver throws an exception withCaused by: java.lang.ExceptionInInitializerError
. The driver retries the connection withCLEAR_TEXT_PASSWORD_SECURITY
(3). - When the version of the Java runtime environment or SDK
for Java is Version 8 or older, the policy files have expired,
and the connection to the data server uses
ENCRYPTED_USER_AND_PASSWORD_SECURITY
(9) by default, the driver throws ajava.security.InvalidKeyException
. The driver retries the connection withCLEAR_TEXT_PASSWORD_SECURITY
(3). - When a connection to a Db2 for z/OS or
Db2 on Linux, UNIX, and Windows systems data server uses SSL, the
connection uses
CLEAR_TEXT_PASSWORD_SECURITY
(3) by default. If you explicitly set the security mechanism to another value, the driver uses the explicitly set value.
Change to the default encryption algorithm
Before version 4.33 of the IBM Data Server Driver for JDBC and SQLJ, the default encryption algorithm is 56-bit DES encryption (1).
Starting with version 4.33 of the IBM Data Server Driver for JDBC and SQLJ, the default encryption is 256-bit AES encryption (2).
Changes to driver behavior for a data type mismatch between a host variable and a column
Before version 4.33 of the IBM Data Server Driver for JDBC and SQLJ, when the SQLJ profile customizer (db2sqljcustomize) bound a host variable to a column, and there was a mismatch between the host variable data type and the column data type, db2sqljcustomize took no action.
Starting with Version 4.33 of the driver, when there is a data type mismatch, and db2sqljcustomize option -onTypeMismatch is not set, db2sqljcustomize issues a warning and continues the customization process.
Changes to driver behavior on truncation of input data
Before version 4.33 of the IBM Data Server Driver for JDBC and SQLJ, when a value was inserted into a column, and the value was too large for the column, the driver took no action.
Starting with Version 4.33 of the driver, when data that is too large for a column is inserted
into the column, the default behavior is that the driver issues a warning. To cause the same
behavior as in earlier versions of the driver, set Connection and
DataSource
property onDataTruncation to
DB2BaseDataSource.ON_DATA_TRUNCATION_NO_ACTION_VALUE
(3), or set configuration
property db2.jcc.onDataTruncation or db2.jcc.override.onDataTruncation to 3.
Change to automatic connection checking when sysplex workload balancing is enabled at the data server
Before version 4.34 of the IBM Data Server Driver for JDBC and
SQLJ,
automatic connection checking when an application released its connection to the connection pool was
performed when com.ibm.db2.jcc.DB2ConnectionPool.testConnectionOnCheckin was
set to true
, regardless of whether sysplex workload balancing was enabled at the
data server. Automatic connection checking in that environment could lead to excessive network
activity.
true
), the
following changed behaviors occur:- Automatic connection checking when an application releases its connection to the connection pool is disabled.
- The IBM Data Server Driver for JDBC and
SQLJ always returns a value
from
true
from method java.sql.Connection.isValid.
Change to support for the keepAliveTimeOut property
Before version 4.34 of the IBM Data Server Driver for JDBC and SQLJ, keepAliveTimeOut was not supported if the Java runtime environment was Java SE 9 or later.
Starting with version 4.34 of the IBM Data Server Driver for JDBC and SQLJ driver, keepAliveTimeOut is supported when the Java runtime environment is Java SE 9 or later, as well as earlier versions of the Java runtime environment. The IBM Data Server Driver for JDBC and SQLJ supports keepAliveTimeOut regardless of the JDK level if the JDK supports keepAliveTimeOut.
Change to the default for property sslClientHostnameValidation
Before version 4.34 of the IBM Data Server Driver for JDBC and SQLJ, the default for sslClientHostnameValidation was OFF. Starting with version 4.34 of the IBM Data Server Driver for JDBC and SQLJ, the default is BASIC.
Change to the minimum Java Runtime Environment requirement
- The minimum Java Runtime Environment version is JRE 8.
- For any APIs that are introduced in JDBC API Specification 4.3, the minimum Java Runtime Environment version is JRE 9.
Change to the license files that are required for connecting to Db2 for z/OS or Db2 for IBM i
Starting with version 4.34 of the IBM Data Server Driver for JDBC and SQLJ and Db2 Connect Version 12.1, the license server that is required for connecting to Db2 for z/OS or Db2 for IBM i must be downloaded from Passport Advantage when the user upgrades from one major version of Db2 Connect to another (for example, from Db2 Connect 11.5 to Db2 Connect 12.1).
Also starting with version 4.34 of the IBM Data Server Driver for JDBC and SQLJ and Db2 Connect Version 12.1, the license file that is required depends on the Db2 Connect edition.
License JAR file name | Db2 Connect edition |
---|---|
db2jcc_license_consvZS.jar | Db2 Connect Unlimited Edition for System z |
db2jcc_license_consvIS.jar | Db2 Connect Unlimited Edition for System i |
db2jcc_license_consvAS.jar | Db2 Connect Application Server Edition |
db2jcc_license_consvEE.jar | Db2 Connect Enterprise Edition |
db2jcc_license_consvAAS.jar | Db2 Connect Application Server Advanced Edition |
db2jcc_license_consvAZS.jar | Db2 Connect Unlimited Advanced Edition for System z |