IBM Support

PM32361: NEW RELEASE OF THE IBM DB2 DRIVER FOR JDBC AND SQLJ (RELEASE 4.12) PROVIDING VARIOUS ENHANCEHMENT AND SERVICE UPDATES.

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.12) providing various enhancehment and service updates.
    Additional keywords: jcc 4.12 jcc4.12
    

Local fix

  • n/a
    Additional Keywords: kixdcfcic670
    

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.12.57 is provided by     *
    *                      this APAR ( JCCV41257 )                 *
    *                                                              *
    *                      This APAR is applicable to IBM Data     *
    *                      Sever Driver for JDBC and SQLJ          *
    *                      for both DB2 z/OS V10 and DB2 z/OS V9   *
    *                      ( JCCZOSDB2V10, JCCZOSDB2V9 )           *
    *                                                              *
    *                      This APAR delivers a new release (4.12) *
    *                      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: Previously, the special characters
    carriage returns (#x0d), line feeds (#x0a), and tabs (#x09)
    are not escaped during serialization process from binary XML,
    now these characters are escaped. (wsdbu00796615)
    ____________________________________________________________
    All Connectivities: For processing instruction tag for binary
    XML, if the value is empty, driver inserts an extra space.
    For example, if the tag is <?p9?> or <?p10?>, driver puts an
    extra space in the tag so the tag become <?p9 ?> or <?p10 ?>.
    This problem has been fixed. (wsdbu00685454)
    ____________________________________________________________
    All Connectivities: The driver Java trace may have duplicated
    TRACE_DIAGNOSTICS blocks when either exception with error
    SQLCODE952 (-952) or SQLCODE911 (-911) is encountered. This
    has been fixed. (wsdbu00701777)
    ____________________________________________________________
    All Connectivities: The following proprietary method is
    provided to support temporal column:
    DB2ResultSetMetaData
     * Indicates whether the designated column is a
     * temporal column,
     * including ROW BEGIN (1), ROW END (2), and
     * TRANSACTION START ID (3).
     *
     * @returns -1 if not a temporal related column,
     *           1 if it is a ROW BEGIN column,
     *           2 if it is a ROW END column, and
     *           3 if it is a TRANSACTION START ID column.
     *
     * @throws java.sql.SQLException
     *
     * @since JCC 3.62/4.12
    public int getDBTemporalColumnType (int column)
      throws java.sql.SQLException;
    
    The standard isAutoIncrement method of ResultSetMetaData will
    return true for temporal columns.
    (wsdbu00690647, wsdbu00689177, wsdbu00690850)
    ____________________________________________________________
    All Connectivities: Using java.math.BigDecimal to map data
    type DECFLOAT is recommended for applications seeking higher
    precision. However, this can be a problem if applications also
    want to retrieve special values: NaN, Infinity and -Infinity
    which are not supported by java.math.BigDecimal. Any such
    attempt would get a generic conversion error SQLCODE4220
    (-4220) from the driver. Now, the driver introduces a new
    SQLCODE4231 (-4231), which is returned when an application
    makes a call to java.sql.ResultSet.getBigDecimal(..) method to
    fetch these special values, thus a subsequent call to
    java.sql.ResultSet.getDouble(..) method may be used to fetch
    the special values. (wsdbu00689678, wsdbu00686028)
    ____________________________________________________________
    All Connectivities: A new command line diagnostic utility is
    introduced to test and verify a successful connection between
    the client application and DB2. This utility tests connection
    to the specified url that user configured for the database
    access, verifies the connection by either executing the sql
    specified or executing the sql "SELECT * FROM SYSIBM.SYSDUMMY1",
    and verifies the execution of a java.sql.DatabaseMetadata API
    call on that connection. (wsdbu00692578)
    ____________________________________________________________
    All Connectivities: An application can start JCC tracing
    without adding any code in its application nor having to stop
    the application by using the JCC trace directives
    "db2.jcc.tracePolling" and "db2.jcc.tracePollingInterval".
    However, if the PreparedStatement has been created and the
    tracing is dynamically turned on after the creation, there is
    no way to get that statement creation information in the trace.
    This feature extends this dynamic trace capability by dumping
    properties, result metadata and parameter metadata for those
    PreparedStatements which were prepared while the trace was off
    as JCC detects the trace is being turned on. (wsdbu00690865)
    ____________________________________________________________
    All Connectivities: A proprietary method is provided on
    com.ibm.db2.jcc.DB2Struct to retrieve the metadata information
    of the underlying ROW data.
    DB2Struct
      * Retrieve the metadata of this Struct object.
      *
      * @return  the description of this Struct object.
      * @throws SQLException
      *  if a database access error occurs or
      *  this method is called on a closed result set
    java.sql.ResultSetMetaData getMetaData()
       throws SQLException;
    (wsdbu00693474)
    ____________________________________________________________
    All Connectivities: The driver now throws an exception during
    getConnection if invalid value is set for the property
    InterruptProcessingMode. (wsdbu00698211)
    ____________________________________________________________
    Type-4 Connectivity:  Starting DB2 for LUW v9.7 FP4, the server
    allows ROW type and ARRAY of ROW type as parameters for stored
    procedures executed via the clients. The driver provides the
    corresponding support for the same. (wsdbu00685890)
    ____________________________________________________________
    Type-4 Connectivity: As part of DB2 for LUW v9.7 FP4, the
    server allows BOOLEAN as parameters for stored procedures
    executed via the clients. Corresponding support for it is
    provided in the driver. (wsdbu00686741)
    ____________________________________________________________
    Type-4 Connectivity: Under sysplexWLB environment, if a member
    goes down at a time when the driver is trying to open a new
    connection to that member, the driver may not properly balance
    the workload among the DB2 members after that point in time.
    This problem has been fixed. (wsdbu00707444)
    ____________________________________________________________
    Type-4 Connectivity: When enableSysplexWLB property or
    enableConnectionConcentrator property is set to "true", a
    SQLCODE4470 (-4470) error might be thrown on ResultSet.next()
    for a held cursor because it might be closed incorrectly. This
    normally happens because the driver is switching server
    connections at transaction boundaries. This has been fixed.
    (wsdbu00692764)
    ____________________________________________________________
    Type-4 Connectivity: When enableSysplexWLB property or
    enableConnectionConcentrator property is set to "true", the
    setClientInfo information was not passed on to the DB2 z/OS
    server for some transactions. This problem has been fixed.
    (wsdbu00704040)
    ____________________________________________________________
    Type-4 Connectivity: When extendedDiagnosticLevel property is
    set to 0xF1 and a table on a remote database is accessed, a
    java.lang.ArrayIndexOutOfBoundsException was thrown. This
    problem has been fixed. (wsdbu00703450)
    ____________________________________________________________
    Type-4 Connectivity: Added a new message to jcc tracing to
    indicate the java.io.IOException on a socket.read() operation.
    (wsdbu00687063)
    ____________________________________________________________
    Type-4 Connectivity: When enableSysplexWLB is set to "true",
    driver may report SQLCODE4499 (-4499) error with message "A
    DRDA Data Stream Syntax Error was detected. Reason: 0xcbcb.
    ERRORCODE=-4499, SQLSTATE=58009" during sql statement
    execution. This problem has been fixed. (wsdbu00685475)
    ____________________________________________________________
    Type-4 Connectivity: When enableSysplexWLB property or
    enableConnectionConcentrator property is set to "true", the
    driver is making twice the number of client reroute connection
    attempts that are configured by maxRetriesForClientReroute.
    This has been fixed. (wsdbu00692907)
    ____________________________________________________________
    Type-4 Connectivity: Driver will process the correlation tokens
    returned from DB2 for z/OS v10 using Unicode and IPv6 format
    when both are supported. (wsdbu00688943)
    ____________________________________________________________
    Type-4 Connectivity: During auto seamless fail over, there are
    scenarios where the statement failed because of abnormal
    conditions (i.e. a zero length reply was sent by the server).
    In these scenarios, the driver should only retry for 10 times
    before giving up by throwing an SQL Exception with SQLCODE4228
    (-4228). However, the driver was not throwing this exception.
    This has been fixed. (wsdbu00703079, wsdbu00705273,
    wsdbu00706687)
    ____________________________________________________________
    Type-4 Connectivity: Under sysplexWLB environment, the
    database product version of the connection object might change
    during the sysplex migration where sysplex members are
    downgraded or upgraded. It should keep the same value that it
    received while making the initial connection and it should
    never be changed during the migration. (wsdbu00706624)
    ____________________________________________________________
    Type-4 Connectivity: java.lang.ArrayIndexOutOfBoundsException
    may be thrown if the PreparedStatement was profiled with an
    old profiler and was executed statically via pureQuery. This
    problem is now fixed. (wsdbu00714246)
    ____________________________________________________________
    Type-4 Connectivity: Previously, during T4 Connection time,
    Product-specific Data (PRDDTA) String specifies product
    specific information is sent to server in EBCDIC format. Now
    the format depends on whether server supports unicode manager
    or not. If server supports unicode manager, the data is sent
    to server in unicode format. Otherwise, it is sent to server
    in EBCDIC format. (wsdbu00704263 wsdbu00704266)
    ____________________________________________________________
    SQLJ ALL Connectivities: SQLJ added a new JCC Global property
    "db2.jcc.sqljToolsExitJVMOnCompletion". This is a Boolean
    property. The default value for this property is true. All
    sqlj tools like db2sqlbinder and db2sqljcustomize will call
    System.exit() upon completion. Setting this to false means
    that sqlj Tools do not call System.exit(). (wsdbu00685247)
    ____________________________________________________________
    SQLJ ALL Connectivities: An SQLException may occur most likely
    in a Websphere application with the error message "ResultSet
    is closed". The SQLJ connection context and associated
    resources closed prematurely during garbage collector(GC)
    execution. Fixed to not close the SQLJ statement when there
    is an active ResultSet and GC driven Finalizer is called.
    (wsdbu00706036)
    ____________________________________________________________
    Type-2 z/OS Connectivity: The type-2 z/OS driver code holds
    a driver level Java synchronization when calling native DB2
    code to create and close Connections. This driver level
    synchronization can result in an unnecessary performance
    bottleneck in multi-threaded environments, particularly in
    environments where Connection pooling is not used. The
    type-2 driver code has been rewritten to no longer require
    the driver level synchronization for Connection creation and
    close. (wsdbu00692440)
    ____________________________________________________________
    Type-2 z/OS Connectivity: java.lang.NumberFormatException is
    thrown when attempting to create a new Connection under the
    CICS execution environment, and there is a CICS ABEND due to
    the DB2 not being available. The driver was not correctly
    propagating the non-zero return code from the CICS "DSNHLI"
    call in order to generate the expected SQLException.
    (wsdbu00692438)
    ____________________________________________________________
    Type-2 z/OS Connectivity: java.lang.NullPointerException is
    thrown when processing metadata from a ResultSet due to a
    native error (-4000004). This has been fixed. (wsdbu00708529)
    

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

    PM32361

  • Reported component name

    DB2 ODBC/JDBC/S

  • Reported component ID

    5740XYR02

  • Reported release

    912

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2011-02-10

  • Closed date

    2011-04-11

  • Last modified date

    2011-06-27

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

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

    UK66665 UK66666

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 UK66665

       UP11/04/13 P F104

  • R912 PSY UK66666

       UP11/04/13 P F104

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

Document Information

Modified date:
03 March 2021