IBM Support

PI47282: NEW RELEASE OF THE IBM DB2 DRIVER FOR JDBC AND SQLJ (RELEASE 4.19) PROVIDING VARIOUS ENHANCEHMENT

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • NEW RELEASE OF THE IBM DB2 DRIVER FOR JDBC AND SQLJ (RELEASE
    4.19) PROVIDING VARIOUS ENHANCEHMENT
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All Users of the IBM Data                    *
    *                 Server Driver for JDBC and SQLJ              *
    ****************************************************************
    * PROBLEM DESCRIPTION: IBM Data Sever Driver for JDBC and      *
    *                      SQLJ version 4.19.56 is provided by     *
    *                      this APAR ( JCCV41956 )                 *
    *                                                              *
    *                      This APAR is applicable to IBM Data     *
    *                      Sever Driver for JDBC and SQLJ          *
    *                      for DB2 z/OS V11, DB2 z/OS V10 and      *
    *                      DB2 z/OS V9( JCCZOSDB2V11,              *
    *                      JCCZOSDB2V10, JCCZOSDB2V9 )             *
    *                                                              *
    *                      This APAR delivers a new release (4.19) *
    *                      of the IBM Data Server Driver for JDBC  *
    *                      and SQLJ providing an accumulation of   *
    *                      defect fixes and enhancements.          *
    *                                                              *
    *                      Individual items are documented in the  *
    *                      APAR summary section that follows.      *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    JCC sub-category keywords:
        JCCCOMMON, JCCT2ZOS, JCCT4, JCCT4XA, JCCSQLJ
    
    The following changes are delivered in this APAR:
    _______________________________________________________________
    All Connectivities: In a WebSphere Application Server
    environment, a JNDI reference to a DataSource is passed to the
    driver's hydrateFromReference() API to generate the DataSource
    using the properties included in the JNDI reference. The
    java.lang.NumberFormatException error may be observed during
    this processing. This occurs due to a mismatch in the expected
    data type of the useCachedCursor DataSource property value.
    This problem has been fixed. (RTC 79494)
    _______________________________________________________________
    All Connectivities: When calling a versioned stored
    procedure on DB2 for z/OS, the driver throws an
    SQLException with ERRORCODE=-4472 with a message "cannot
    get the describe information for the calling stored
    procedure." This happens when more than one versions of
    the stored procedure exists. The problem has been fixed by
    ensuring that the driver uses the currently Active version
    of the stored procedure for determining it's metadata.
    (RTC 66679, RTC 84266)
    _______________________________________________________________
    All Connectivities: Support a new value
    DB2BaseDataSource.CONNECTION_CLOSE_WITH_COMMIT (3) for
    "connectionCloseWithInFlightTransaction" driver property.
    This value allows an application to indicate that if a
    connection is closed in the middle of a transaction and
    autoCommit is disabled, then any uncommitted operations should
    be implicitly committed before closing the connection. No
    exception is raised to the application.
    This issue has been fixed.(RTC 47251)
    _______________________________________________________________
    All Connectivities: JCC driver started supporting JDK8 runtime
    environment. (RTC 57429, RTC 74367, RTC 59939)
    _______________________________________________________________
    T2zos Connectivity: When a gobal transaction is active, an
    Unsupported Feature error message appears in the log file. This
    occurs when the driver internally invokes setAutoCommit() while
    a global transaction is active. The setAutoCommit() API
    expectedly returns the error and driver absorbs it with no side
    effects. However, a log message indicating the setAutocommit()
    failure is produced. This has been fixed by ensuring driver
    never internally invokes setAutoCommit() when a global
    transaction is active. (RTC 80297)
    _______________________________________________________________
    T2zos Connectivity: When fetch occurs with LBF on, in certain
    rare conditions the server may end up writing data to a memory
    location specified by a driver pointer that is deallocated.
    This causes a memory overlay and results in an ABEND at a later
    time. This issue has been fixed. (RTC 77509)
    _______________________________________________________________
    T2zos Connectivity: The driver does not apply timeout on
    a resultset.next() API even when the enableTimeoutOnCursor
    property is set to true. This issue has been fixed. (RTC 77090)
    _______________________________________________________________
    Type-4 Connectivity: The PreparedStatement.setObject( )
    API does not support seamless failover in case a
    client-reroute eligible error such as a communication
    error occurs during it's invocation. The support for
    seamless failover to the setObject( ) API has been added.
    This issue has been fixed. (RTC 82450)
    _______________________________________________________________
    Type-4 Connectivity: When transport pooling is in use,
    unexpected errors like a NullPointerException on a
    ResultSet.next() may occur with the following stacktrace:
    java.lang.NullPointerException
     at com.ibm.db2.jcc.t4.hb.a
     at com.ibm.db2.jcc.t4.h.a
     at com.ibm.db2.jcc.t4.h.writeScrollableFetch_
     at com.ibm.db2.jcc.am.ResultSet.flowGetRowset
     at com.ibm.db2.jcc.am.ResultSet.getNextRowset
     at com.ibm.db2.jcc.am.ResultSet.nextX
     at com.ibm.db2.jcc.am.ResultSet.next
    This occurs because the transport is getting switched
    incorrectly. The traces from the driver indicate switching
    of the transport in the middle of a running query. This problem
    has been fixed. (RTC 31496)
    _______________________________________________________________
    Type-4 Connectivity: When a Properties object specified on
    a DriverManager API is constructed with defaults in this
    manner:
      Properties defaults = new Properties();
      defaults.put(<key1>, <key1 value>);
      Properties props = new Properties(defaults);
      props.put(<key2>, <key2 value>);
      DriverManager.getConnection ( url, props);
    then, it is observed that the defaults specified do not get
    used in setting the corresponding connection properties.
    This issue has been fixed. (RTC 52718)
    _______________________________________________________________
    Type-4 Connectivity: If a connection is attempted to a
    PureScale HADR cluster when it is in standby mode, the
    driver receives an error wih SQLCODE1776(-1776) from the
    server. If this occurs on the very first connection, the
    driver would not have received a server list containing an
    address for the alternate cluster. In such a case, the
    driver needs to check if a cached server list for this
    cluster is available on disk and if found, use it to
    reroute the connection to the alternate cluster. However,
    it has been observed that even when the cached server
    list exists, the driver does not check it and
    returns a connection failure SQLException with
    SQLCODE1776(-1776) to the application.
    This issue has been fixed. (RTC 67068)
    _______________________________________________________________
    Type-4 Connectivity: In some cases it is observed that
    DB2Connection.isDBValid() or Connection.isValid() APIs
    return true but the connection throws a SQLException with
    ERRORCODE4499(-4499) when an operation is attempted immediately
    following the API call. The error indicates that the
    underlying connection socket was closed. This occurs due
    to a race condition when the timeout specified on the
    isDBValid() or isValid() API is very close to the actual
    time it takes for the driver to complete a connection
    validity check. When facing this issue, one workaround is to
    increase the timeout specified on the isDBValid() or isValid()
    API call to eliminate chances of the race condition occurring.
    This issue has been fixed. (RTC 63572)
    _______________________________________________________________
    Type-4 Connectivity: A NullPointerException may be thrown
    by the driver in case there is a problem in accessing the
    jccdiag.log. One scenario where this issue is seen
    involves the driver performing a server side license check
    and receiving an SQLCODE805(-805) from the DB2 server in
    response. The driver tries to log this server side license
    check failure to the jccdiag.log. The driver fails to obtain a
    valid OutputStream to the jccdiag.log file and generates a
    NullPointerException.
    This issue has been fixed.(RTC 47917)
    _______________________________________________________________
    Type-4 Connectivity: If a workload alters the value of special
    register CURRENT_CLIENT_ACCTNG across transactions, then in
    certain cases, it may not get set correctly and may carry an
    empty value. This issue has been fixed.(RTC 57429)
    _______________________________________________________________
    Type-4 Connectivity:When CURRENT PACKAGE PATH is changed
    dynamically using a collection ID not bound on the server,
    NullPointerException error message may follow with an
    SQLCODE805(-805), during execution of a prepare statement.
    This issue has been fixed. (RTC 31878)
    _______________________________________________________________
    Type-4 Connectivity: The loginTimeout and memberConnectTimeout
    properties are used to control the maximum time in seconds to
    wait for a connection to a data source. However, they do not
    take effect with Client affinities during client reroute.
    This issue has been fixed. (RTC 55313)
    _______________________________________________________________
    Type-4 Connectivity: If a connection to DB2 z/OS is
    established through a DB2 Connect Gateway, then even if
    queries are cancelled from the client side, they continue
    to execute on DB2 z/OS server. This occurs because JDBC
    driver by default uses
    INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET (2) against DB2 for
    z/OS and if the connection is established through a DB2
    Connect Gateway, the INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET (2)
    interrupt mode does not
    generate an interrupt on the DB2 for z/OS server. With
    this APAR, this problem is fixed by now defaulting the
    interrupt processing mode to
    INTERRUPT_PROCESSING_MODE_STATEMENT_CANCEL (1) if a
    connection is through a DB2 Connect Gateway. (RTC 68037)
    _______________________________________________________________
    SQLJ and All Connectivities: SQLJ trace generator has been
    modified to improve overall performance of SQLJ.
    (RTC 74421)
    __________________________________________________________
    SQLJ and All Connectivities: When an SQLJ application repeatedly
    executes SELECT INTO statement in a loop with the setMaxRows
    defined and the number of loop iterations are higher than the
    setMaxRows value, it results SQLCODE100(100) which is
    no row found error.
    This issue has been fixed.(RTC 64893)
    _______________________________________________________________
    SQLJ and All Connectivities:  SQLJ DB2SQLJCustomize may return
    ERRORCODE4743(-4743) when a new DB2 V11 SQLJ application uses
    db2 v11 features. This issue has been fixed. (RTC 74920)
    _______________________________________________________________
    SQLJ and All Connectivities: The db2sqljcustomize and
    db2sqljbind commands are changed to generate the consistency
    token values in an increasing timestamp order. (RTC 48550)
    _______________________________________________________________
    SQLJ and All Connectivities: When an application passed an
    invalid timestamp to create a timestamp with timezone, the
    driver used to check the validity of the timestamp and throw an
    internal error. With the fix, the driver passes the invalid
    timestamp directly to the server and SQLN181 (SQLCODE181) will
    be issued by the server, and the driver will externalize the
    SQLCODE error to the application. (RTC 56904)
    _______________________________________________________________
    SQLJ and All Connectivities: DB2 Connect Property
    sqljAvoidTimeStampConversion can be used to suspend timestamp
    Gregorian calendar validation of and conversion of timestamp
    values in a SQLJ application. (RTC 53453)
    _______________________________________________________________
    SQLJ and All Connectivities: The APPLCOMPAT option is
    introduced with the db2sqljcustomiz and db2sqljbind commands to
    allow user to set V10R1 or V11R1 or any other DB2 Z/OS server
    supported option. According to the value passed, the server
    side compatibility mode will be enabled.
    (RTC 69916)
    

Problem conclusion

  • The items described in the APAR Problem
    Summary have been resolved as noted in
    the summary and included in this APAR.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI47282

  • Reported component name

    DB2 ODBC/JDBC/S

  • Reported component ID

    5740XYR02

  • Reported release

    B12

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-08-20

  • Closed date

    2016-03-07

  • Last modified date

    2016-04-05

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

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

    UI35890 UI35891 UI35892

Modules/Macros

  •    DSNAJJC1 DSNAJJC2 DSNAJ3CC DSNAJ3CE DSNAJ3CF
    DSNAJ3CM DSNAJ3C0 DSNAJ3C1 DSNAJ3C2 DSNAJ3C3 DSNAJ3C4 DSNAJ3C5
    DSNAJ3C6 DSNAJ3C7 DSNAJ3C9 DSNAJ6CC DSNAJ6CE DSNAJ6CF DSNAJ6CM
    DSNAJ6C0 DSNAJ6C1 DSNAJ6C2 DSNAJ6C3 DSNAJ6C4 DSNAJ6C5 DSNAJ6C6
    DSNAJ6C7 DSNAJ6C9
    

Fix information

  • Fixed component name

    DB2 ODBC/JDBC/S

  • Fixed component ID

    5740XYR02

Applicable component levels

  • RA12 PSY UI35890

       UP16/03/10 P F603

  • RB12 PSY UI35891

       UP16/03/10 P F603

  • R912 PSY UI35892

       UP16/03/10 P F603

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B12"}]

Document Information

Modified date:
03 March 2021