IBM Support

PH25529: Distributed thread receives SQLCODE -30108 reason code 2 when connecting to Db2 for z/os server with KeepDynamicRefresh

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • SQLCODE -30108 with Reason code: "2" when KeepDynamicRefresh is
    enabled and client is configured for either
    sysplexwlb or seamless failover and the thread is killed while a
    transaction is still active.
    
    Erep will indicate either reason code 00D3003E or 00D3003F.
    No messages are externalized to the Db2mstr started task log.
    No DSNL027I or DSNL028I are issued for this problem
    
    
    Additional keywords and symptoms:
    *************************************
    DB2DDF KeepDynamicRefresh
    sysplexwlb SQL30108N -30801
    RC00D3003E 00D3003E RC00D3003F 00D3003F
    

Local fix

  • no local workaround or fix
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * All Distributed Data Facility (DDF) users.                   *
    * Specifically where DB2 is being accessed                     *
    * by distributed applications using the                        *
    * IBM Data Server Driver or Client and the                     *
    * packages utilized by the application were                    *
    * bound with KEEPDYNAMIC(YES).                                 *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * Intermittent occurrences of                                  *
    * SQLCODE -30108 with Reason code: "2"                         *
    * are observed in the client application                       *
    * environments.                                                *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Apply corrective PTF when available                          *
    ****************************************************************
    Db2 provided a capability called KeepDynamicRefresh.
    Distributed client application environments, which access
    Db2 using the IBM Data Server Driver or Client, and utilize
    packages bound with KEEPDYNAMIC YES, can activate this
    capability. The purpose of KeepDynamicRefresh was to
    periodically seamlessly refresh the distributed application's
    connection/DBATs. This refresh is accomplished by Db2
    terminating the connection/DBAT when the connection/DBAT has
    been used for processing transactions for up to an hour or
    when the connection/DBAT has been sitting idle for up to 20
    minutes since processing a transaction. Db2 will record these
    events in LOGREC with reason codes 00D3003E
    (KeepDynamicRefresh DBAT used more than one hour) and
    00D3003F (KeepDynamicRefresh DBAT idle for more than 20
    minutes). These connection/DBAT terminations are treated by
    the IBM Data Server Driver or Client as an indication for the
    IBM Data Server Driver or Client to refresh its processing
    thread, if and only if, the terminations occurred while not
    processing a transaction. Also, it was also intended that Db2
    would only terminate a candidate connection/DBAT when
    the connection/DBAT is not processing a transaction or
    holding a Db2 resource. Due to an internal logic error, the
    Db2 task which monitors DBATs for being idle too long
    incorrectly detected that one of these KeepDynamicRefresh
    connection/DBATs was idle too long and terminated the
    connection/DBAT while it was processing a transaction. This
    event is then reported in the distributed client application
    environment as an occurrence of SQLCODE -30108 with
    Reason code: "2".
    

Problem conclusion

  • Db2 has been changed to ensure that KeepDynamicRefresh
    connection/DBATs will only be terminated for being idle
    too long when the connection/DBAT is not processing a
    transaction or holding a Db2 resource.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH25529

  • Reported component name

    DB2 OS/390 & Z/

  • Reported component ID

    5740XYR00

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-05-18

  • Closed date

    2020-06-08

  • Last modified date

    2020-07-06

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

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

    UI69927 UI69928

Modules/Macros

  • DSNLQCTL
    

Fix information

  • Fixed component name

    DB2 OS/390 & Z/

  • Fixed component ID

    5740XYR00

Applicable component levels

  • RC10 PSY UI69928

       UP20/06/17 P F006

  • RB10 PSY UI69927

       UP20/06/17 P F006

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.

[{"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":"12.0","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
07 July 2020