IBM Support

IC62193: DOCUMENTATION OF CHANGES IN IBM DATA SERVER DRIVER FOR JDBC AND SQLJ VERSION 3.58.82/4.8.87 FOR DB2 LUW V9.7 FP1

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • ============================================================
    Documentation of changes in IBM Data Server Driver for JDBC
    and SQLJ version 3.58.82/4.8.87 for DB2 LUW V9.7 Fixpack 1.
    The previous version was 3.57.82/4.7.85 for DB2 LUW V9.7.
    
    ____________________________________________________________
    All Connectivity Types: When invoking a z/OS stored
    procedure that has space in the name, the driver throws
    SQLException "Literal replacement parsing failed for
    procedure call to DB2 for z/OS".
    (126896)
    ____________________________________________________________
    All Connectivity Types:
    When Statement.cancel gets called (this may be called
    explicitly or get triggered by Statement.setQueryTimeout),
    if something is wrong with the DB2 server and a
    DisconnectException occurs, a NullPointerException may
    be issued from java.util.LinkedList$ListItr.remove.
    This is because both the cancel thread and main thread use
    the same LinkedList and Iterator for the Exception path.
    In a race condition, one thread may have already removed
    the element from the LinkedList when the other thread tries
    to remove, causing the NPE. (128074)
    ____________________________________________________________
    All Connectivity Types:
    If an application first connects to DB2 LUW and calls
    DB2Connection.getJccSpecialRegisterProperties(), then the
    same thread connects to DB2 z/OS and calls the same method,
    the driver will throw a SQLException with error code -104.
    (128970)
    ____________________________________________________________
    All connectivity types: Previously, the driver doesn't
    allow "YES"/"NO" as values for the following properties.
    - atomicMultiRowInsert
    - enableNamedParameterMarkers
    - monitorEnabled
    - progressiveStreaming
    - useJDBC4ColumnNameAndLabelSemantics
    Now these values are allowed. (129768)
    ____________________________________________________________
    All connectivity types: A looping problem happens while
    executing inside WAS and
    retrieveMessagesFromServerOnGetMessage is set to true and
    the message stored procedure (SQLCAMESSAGECCSID/
    SQLCAMESSAGE) is missing on the server.
    (131185)
    ____________________________________________________________
    All Connectivity Types:  A deadlock could occur if an
    application uses DataSource and DriverManager for opening
    connections at the same time.  This could result in a Java
    thread hang in the JVM. (125296)
    ____________________________________________________________
    All Connectivity: When driver property
    enableNamedParameterMarkers is set to DB2BaseDataSource.YES
    and the SQL statement executed is MERGE and the SQL
    statement contains named parameter markers, i.e. :abc,
    setJccXXXAtName() methods throw an exception for "Invalid
    argument: Parameter marker [name] was not present in the
    SQL String." (124933)
    ____________________________________________________________
    All Connectivity: An "Invalid operation: result set is
    closed" exception with SQLCODE4470 (-4470) is
    encountered when making a call to ResultSet.next() on
    the ResultSet retrieved from a statement that is prepared
    or executed with RETURN_GENERATED_KEYS.
    (127025)
    ____________________________________________________________
    All connectivity types:  The class
    com.ibm.db2.jcc.DB2DataSource has been deprecated. Please
    use com.ibm.db2.jcc.DB2SimpleDataSource instead.  This
    applies to all supported backend databases. (126506)
    ____________________________________________________________
    All connectivity types: When using the DriverManager to
    obtain a connection, the client will be unable to change
    the value of the useJDBC4ColumnNameAndLabelSemantics
    property  from DB2BaseDataSource.NOT_SET.
    Furthermore, when using the JDBC 3 driver, the client
    will be unable to change the value of the
    progressiveStreaming property from
    DB2BaseDataSource.NOT_SET
    These problems do not exist when using a DataSource to
    obtain a connection. (127128)
    ____________________________________________________________
    All Connectivities: The getJccSpecialRegisterProperties()
    method throws a -4700 error against DB2 z/OS databases
    running in Compatibility Mode. (131802)
    ____________________________________________________________
    All Connectivities: Using JDBC JCC T2/T4 to call a z/OS DB2
    stored procedure, a NULL input parameter results in a -4463
    error code returned. (132100)
    ____________________________________________________________
    All Connectivities: Previously, if the DataSource
    property sendDataAsIs is set to true, the driver allows
    getting ParameterMetaData using
    PreparedStatement.getParameterMetaData(). This is no longer
    allowed, and an exception will be throw with message
    "Cannot get parameterMetaData information when property
    sendDataAsIs is true". (129326)
    ____________________________________________________________
    All Connectivities: A "java.lang.ClassCastException"
    exception is encountered when
    PreparedStatement.executeBatch () is called against
    DB2 for z/OS to execute an INSERT FROM SELECT statement.
    (130216)
    ____________________________________________________________
    All Connectivities: An "Unrecognized JDBC type: 1111"
    exception with SQLCODE4228 (-4228) is encountered when
    PreparedStatement.setNull () is called with
    java.sql.Types.OTHER against a target column that is
    defined as DECFLOAT. (130681)
    ____________________________________________________________
    All Connectivities: Select of a TIMESTAMP from source column
    that has a precision greater than 9 may result in an
    incorrect Timestamp fraction. (132104)
    
    ___________________________________________________________
    All Connectivities: Conversions from a string type to a
    corresponding boolean type is giving incorrect results.
    (122608)
    ____________________________________________________________
    All Connectivities: A -805 SQLException is thrown when
    both currentPackagePath and currentFunctionPath DataSource
    properties are set. (122488)
    ____________________________________________________________
    All Connectivities: When a null String array is passed for
    agk column names in the
    Connection.prepareStatement(String, String[]) method, a
    null pointer exception is thrown. (123866)
    ____________________________________________________________
    All Connectivities: Attempting to register an OUT parameter
    on callable statement within compound block failed with
    error code -4461 and sqlstate 42815. (127988)
    ____________________________________________________________
    All Connectivity Types: When progressive streaming is set
    to false, retrieving data from Blob/Clob to
    InputStream/Reader may not get complete data.
    (122292)
    ____________________________________________________________
    All Connectivity Types: Previously, the driver doesn't
    support CCSID 1153. If the database is in CCSID 1153, the
    driver throws a SQLException with message "Unsupported
    ccsid, encoding, or locale:1153". CCSID 1153 support is now
    added. (122552)
    ____________________________________________________________
    All Connectivity Types: When invoking the
    com.ibm.db2.jcc.DB2Binder functions against z/OS v10
    server, the driver may throw SQLException with message "The
    DDM object is not supported.  Unsupported DDM object code
    point: 0x2213. ERRORCODE=-4499, SQLSTATE=58015".
    (124653)
    ____________________________________________________________
    All Connectivity Types: When retrieving XML data from z/OS
    v10 server, the driver may throw Exception java.lang.
    IllegalArgumentException: Negative initial size: -1.
    (124699)
    ____________________________________________________________
    All Connectivity Types: When using SQL MERGE statement and
    the DataSource property atomicMultiRowInsert is set to
    true, the driver may throw a java.lang.ClassCastException.
    (125076)
    ____________________________________________________________
    All Connectivity Types: If the target server is LUW
    and the DataSource property
    retrieveMessagesFromServerOnGetMessage is set to true,
    SQLException.getMessage() may only return partial SQL error
    message tokens if they contain double byte characters.
    (126118)
    ____________________________________________________________
    Type-4 and Type-2 LUW Connectivity: Executing a
    PreparedStatement which has XML parameters is noticeably
    slower in  the DB2 for Linux, Unix, and Windows v9.5 driver
    than the v9.1 driver.  This slowdown is even more
    evident when the statement has multiple XML parameters.
    This slowdown is no longer present. (128593)
    ____________________________________________________________
    T4 Connectivity: If the target server is iSeries, the
    DataSource property encryptionAlgorithm is set to 1, and
    the DataSource property securityMechanism is set to
    ENCRYPTED_USER_AND_PASSWORD_SECURITY or
    ENCRYPTED_PASSWORD_SECURITY, the call to getConnection()
    may fail. (126317)
    ____________________________________________________________
    T4 Connectivity: When enableSysplexWLB is set to
    true, when executing a SQL statement, the driver
    may issue an Exception "A DRDA Data Stream Syntax
    Error was detected. Reason: 0xcbcb. ERRORCODE=-4499,
    SQLSTATE=58009".(131017)
    ____________________________________________________________
    Type-4 Connectivity: The default value of the
    maxRefreshInterval global property has been changed to 30
    seconds from 8 seconds. (129196)
    ____________________________________________________________
    Type-4 Connectivity: A NullPointerException occurs
    when connectionConcentrator property is set to true and
    sysplexWLB property is set to false and the JCC trace is
    enabled. (131088)
    ____________________________________________________________
    Type-4 Connectivity: SQLCODE204 (-204) error is reported
    when a local commit is called twice under a SysplexWLB
    environment. (125938)
    ____________________________________________________________
    Type-4 Connectivity: A possible loss of precision for
    setString() when the target column is declared as
    Timestamp(p) where p > 9 has been resolved. (129809)
    ____________________________________________________________
    Type-4 Connectivity: Driver code has been enhanced to
    also do client re-route upon receiving SQLCODE1224
    (-1224). (130591)
    ____________________________________________________________
    T4 Connectivity: When enableSysplexWLB is true, the
    password is null, and an API for trusted
    connection switch user is called, the driver may throw
    an exception with message "Null password is not supported.
    ERRORCODE=-4461, java.lang.NullPointerException or The DDM
    object is not supported.  Unsupported DDM object code
    point: 0x2408." (132155)
    
    ____________________________________________________________
    Type-4 Connectivity: While targeting DB2 for LUW server,
    and driver property enableClientAffinitiesList is set to
    DB2BaseDataSource.YES(1), upon a communication failure,
    driver may continuously try to reconnect to the primary
    server. (129995)
    ____________________________________________________________
    Type-4 Connectivity: Automatic client reroute (ACR) to
    other members of a datasharing group may not occur when
    Sysplex workload balancing (WLB) is enabled, resulting in
    SQLCODE4499 (-4499) when one member goes down. (133488)
    ____________________________________________________________
    Type-4 Connectivity: When PreparedStatement.setNull is
    called with java.sql.Types.LONGVARBINARY, the driver is
    mapping it to a VARCHAR instead of a VARBINARY. The driver
    code has been enhanced to flow VARBINARY when connecting
    to a server that supports it. (125885)
    ____________________________________________________________
    Type-4 XA Connectivity: A XAException with SQLCODE4223
    (-4223) along with a SQLCODE4474 (-4474) with the
    following message "Cannot change current package path when
    pre-existing package sets are in use on the connection."
    might be reported if the "currentPackagePath" property is
    set by the DB2Connection.reconfigureDB2Connection() method.
    (124318)
    ____________________________________________________________
    Type-4 XA Connectivity: When connecting via DB2 Gateway,
    a XAException with XAER_PROTO error is thrown because
    JCC did not issue a local commit at the end of the local
    transaction and before a new global transaction.
    (129441)
    ____________________________________________________________
    Type-4 XA Connectivity: A NullPointerException might occur
    on DB2XADataSource.getDB2TrustedXAConnection() when the
    "enableEndToEndMonitoringFeature" property is set to true.
    (126245)
    ____________________________________________________________
    T4-XA connectivity: A performance enhancement was
    introduced increasing the speed of most of of the XA
    transaction API methods. (130398)
    
    ____________________________________________________________
    Type-2 LUW Connectivity: JDBC driver does not return
    column metadata when running a Java stored procedure which
    returns an empty resultset. (123788)
    ____________________________________________________________
    Type-2 LUW Connectivity: A NullPointerException may be
    thrown during execution when the DB2 server authentication
    mode is set to DATA_ENCRYPT and the driver
    securityMechanism property is set to
    ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY. (131147)
    ____________________________________________________________
    T2 UW Connectivity: When sysplex is enabled on T2 UW
    connectivity, a null pointer exception is thrown.
    (109208)
    ____________________________________________________________
    SQLJ:
    The sqlj command fails if the package name and class name
    of the SQLJ program are the same. (128079)
    

Local fix

  • n/a
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Users of the IBM Data Server Driver for JDBC and SQLJ        *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See Error Description                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to DB2 LUW V9.7 FP1                                  *
    ****************************************************************
    

Problem conclusion

  • Problems fixed after DB2 LUW V9.7
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC62193

  • Reported component name

    DB2 FOR LUW

  • Reported component ID

    DB2FORLUW

  • Reported release

    970

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-07-23

  • Closed date

    2009-12-25

  • Last modified date

    2010-10-13

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    DB2 FOR LUW

  • Fixed component ID

    DB2FORLUW

Applicable component levels

  • R970 PSN

       UP



Document information

More support for: DB2 for Linux, UNIX and Windows

Software version: 9.7

Reference #: IC62193

Modified date: 13 October 2010