IBM Support

PK64228: DB2 UNIVERSAL JDBC DRIVER RELEASE 2.11 GENERAL SERVICE.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Various service updates to the DB2 Universal JDBC
    Driver release 2.11 may be provided.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All Users of the DB2 Universal JDBC Driver   *
    ****************************************************************
    * PROBLEM DESCRIPTION: DB2 Universal Driver Version 2.11.67 is *
    *                      provided by this APAR. ( JCCV21167 )    *
    *                                                              *
    *                      This APAR is applicable to both DB2     *
    *                      Universal drivers for z/OS V7 and V8.   *
    *                      ( JCCZOSDB2V7, JCCZOSDB2V8 )            *
    *                                                              *
    *                      This APAR delivers a service bundling   *
    *                      to release 2.11 of the DB2 Universal    *
    *                      JDBC Driver 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 Connectivity: New global configuration property is added
    allowing user configurability for controlling whether the
    driver produces any SQLWarnings or SQLExceptions with a null
    SQLState. There is no driver defect in producing null and
    applications should be written tolerant of such. However, the
    legacy JDBC driver used "FFFFF" instead of null for errors
    where there was no formal SQLState defined. Some legacy
    applications have been written assuming non-null value and
    have been impacted with NullPointerExceptions when migrating.
    This feature provides a usability enhancement to help with
    such migrations without impacting existing application code.
    The new global configurable property is:
      db2.jcc.defaultSQLState    or
      db2.jcc.defaultSQLState=xxxxx
    If specified with no explicit assignment, the driver will
    choose a default (currently "FFFFF") for all cases that
    normally produce null for SQLState. If specified with explicit
    assignment, that value will be used with padding or truncation
    assuring 5 character length. (109828, 110099, 111749)
    
    ____________________________________________________________
    All Connectivity: Memory usage issues occurred linked to
    large application ClassLoaders never getting garbage
    collected, even though the application had gone out of scope.
    This happened when running in a Websphere Application Server
    environment. There are circumstances where the driver creates
    Threads (e.g. via a Timer used for query timeout) that persist
    for the life of the driver. These were not done as
    PrivilegedActions and resulted in refs to appl. ClassLoaders
    that persisted for the life of the driver. (110658)
    
    ____________________________________________________________
    All Connectivity: Scale of 0 was used when a BigDecimal was
    inserted to a non DECIMAL column. Scale is now retained.
    (110370)
    
    ____________________________________________________________
    All Connectivity: NullPointerException occurred when calling
    Statement.setCursorName(null). (112383)
    
    ____________________________________________________________
    Type2 z/OS: Diagnostic tracing improvements have been added
    providing better information of data coming from DB2 engine
    for DESCRIBE INPUT processing. This facilitates service for
    problems where this information may be an issues. (111444)
    
    ____________________________________________________________
    Type-2 z/OS: setQueryTimeOut with a value other than 0 is
    not supported by type-2 z/OS connectivity. However, no error
    was reported and a spawning of a separate query timer thread
    would occur. This has now been modified to no longer spawn
    such a thread and throw an SQLException indicating that this
    is an unsupported operation. (82037)
    
    ____________________________________________________________
    Type-2 z/OS: A Java stored procedure running on a subsystem
    with default system encoding Unicode may fail to return
    ResultSets. Driver provided corrupted collection id
    information to the stored procedure manager, having expected
    this data in application encoding scheme vs. default system
    encoding. This has now been resolved. (111614)
    
    ____________________________________________________________
    Type2 z/OS: Diagnostics indicating JDBC driver internal error
    having leaked native statements occurred after failing a
    trusted connection reuse with a different auth id (i.e.
    switch-user). Anomalies related to attempting to access
    native memory that has been already freed may have occurred.
    This issue is resolved for the trusted reuse error path.
    (113739)
    
    ____________________________________________________________
    Type4: An SQLException with SQLCODE4214 (-4214) is now
    thrown if there is an authorization failure when acquiring a
    Connection. Previously, an SQLException with error code
    -99999 was thrown under this condition. (97639)
    
    ____________________________________________________________
    Type4: When using securityMechanism  KERBEROS_SECURITY in
    WAS with user id specified explicitly, an SQLException with
    error message "Caught javax.security.auth.login.LoginException
    while using JAASLogin" occurred. (109739)
    
    ____________________________________________________________
    Type4: SQLException with message indicating "Invalid argument:
    parameter index 1 is out of range" occurred when trying to
    perform a PreparedStatement setXXX() after the very first
    execute of the PreparedStatement had failed to actually
    prepare and deferPrepares=true (default). (111648)
    
    ____________________________________________________________
    Type4: NullPointerException occurred when Statement cancel
    was attempted after an SQLCODE4499 (-4499) disconnect error.
    The cancel could have either been explicit Statement cancel()
    or implicit because of query timeout being set. (111858)
    
    ____________________________________________________________
    Type4 XA: An XAException with XAER_PROTO error was thrown
    when calling XAResource.recover() method. This occurred if
    the same XAResource called prepare() before calling the
    recover() method. (109103)
    
    ____________________________________________________________
    Type4 XA: SQLCODE911 (-911) occurred when running under XA
    local transaction mode, followed by SQLCODE4497 (-4497) on
    any subsequent SQL statement with error message indicating
    "Application must execute a rollback. The unit of work has
    already been rolled back in the database but other resource
    managers involved in this unit of work might not. To ensure
    integrity of this application, all SQL requests will be
    rejected until the application issues a rollback".
    Subsequent SQL statements now execute as they should. (111979)
    
    ____________________________________________________________
    SQLJ; All Connectivity: Abend 0c4, failure to return intended
    ResultSets from Java stored procedures, or other anomalies
    occurred due to ConnectionContext close() initiated by
    finalization driving DB2 flows to close open cursors belonging
    to Iterators associated with the ConnectionContext. The abend
    0c4 was type2 z/OS specific, occurred when operating in a
    Websphere Application Server environment, and the cursor close
    occurred simultaneous to external transaction management
    (e.g. COMMIT) activity via RRS. The z/OS Java stored procedure
    failed to return an intended ResultSet because the cursor was
    closed before the stored procedure infrastructure was able to
    mark it as intended for return. Such cursor close is now
    prevented. (113677)
    
    ____________________________________________________________
    SQLJ: Profiles upgraded with the Upgrade utility failed at
    runtime with error noting cannot convert from byte   to String
    if a byte   was an input host variable. If this problem exists,
    it requires rerunning the db2sqljupgrade utility again after
    applying the PTF. (109555)
    
    ____________________________________________________________
    SQLJ: Profiles upgraded with the Upgrade Utility
    (db2sqljupgrade) failed at runtime with error: Error code =
    -99999 'Illegal Conversion: Cannot convert from
    "java.lang.String". This error resulted due to missing
    encoding value for a VARCHAR column in the legacy profile.
    The Upgrade utility has been fixed to set a CCSID value of 1208
    for a VARCHAR column if the encoding value is missing in the
    legacy profile. The db2sqljupgrade utility needs to be run
    again after PTF installation to correct the problem. (110502)
    
    ____________________________________________________________
    SQLJ: Profiles upgraded with the Upgrade Utility
    (db2sqljupgrade) failed at runtime with SQLCODE305 (-305).
    The error is the result of incorrect information in the
    legacy profile on statements with an outer join (left, right,
    or full) or other cases which allow columns to be nullabled
    even though the catalog might indicate non-nullable. The
    legacy driver has erroneously tagged columns as non-nullable
    when in fact the SQL did support nullable. This erroneous
    setting was carried forward into the upgraded profile.
    This has now been fixed in the Upgrade Utility by making
    all columns nullable. If this problem exists, it requires
    rerunning the db2sqljupgrade utility again after PTF
    installation to correct the problem. (111169)
    
    _____________________________________________________________
    SQLJ: Memory leak occurred when an SQLJ application ran under
    Websphere environment, used sqlj.runtime.DefaultContext, and
    was stopped and restarted. The DefaultContext held a strong
    reference to the Application ClassLoader. This has now been
    fixed. The Websphere Application Server (WAS) has to be
    restarted after applying the fix. (111172)
    
    ____________________________________________________________
    SQLJ: An explicit ConnectionContext close was
    not closing all the resources associated with the context
    when the duplicate query support was enabled. (112120)
    
    ____________________________________________________________
    SQLJ; Type2 z/OS: SQLCODE812 (-812) was incorrectly issued
    when an application was customized using the -longpkgname
    option and the  updateRow() or deleteRow() methods were
    invoked on a ResultSet that was obtained using an updatable
    SQLJ Iterator. (110101)
    

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

    PK64228

  • Reported component name

    DB2 ODBC/JDBC/S

  • Reported component ID

    5740XYR02

  • Reported release

    812

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2008-04-09

  • Closed date

    2008-09-09

  • Last modified date

    2008-10-02

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

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

    UK39698 UK39699

Modules/Macros

  •    DSNAQJBA DSNAQJBB DSNAQJB1 DSNAQJB2 DSNAQJB3
    DSNAQJB4 DSNAQJB5 DSNAQJB6 DSNAQJB7 DSNAQJB8 DSNAQJB9 DSNAQJC1
    DSNAQJC2 DSNAQJC3 DSNAQJC4 DSNAQJL1 DSNAQJL2 DSNAQJRM DSNAQ6L8
    

Fix information

  • Fixed component name

    DB2 ODBC/JDBC/S

  • Fixed component ID

    5740XYR02

Applicable component levels

  • R712 PSY UK39698

       UP08/09/11 P F809

  • R812 PSY UK39699

       UP08/09/11 P F809

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":"812"}]

Document Information

Modified date:
03 March 2021