IBM Support

PI45750: DFHPC0409 WHEN JAVA PROGRAMS GET TRANSACTION ABENDS WHILE CALLING AN EXTERNAL RESOURCE MANAGER LIKE DB2

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • You have a java program that makes 3 or 4 calls to an external
    resource manager like DB2.  There is something wrong, with
    security or with set-up, that causes each call to fail with a
    transaction abend.  On the third or fourth call, each failing
    with a transaction abend, CICS abends with DFHPC0409.
    .
    Here is an example of the DFHPC0409 message:
    .
    DFHPC0409 DBDCCICS Abends AEY9 and AEY9 have been issued while
    processing abend AD3F for the same task, transaction TRN1.
    .
    Also, when control returns back to the java program following a
    transaction abend, there is no ERM EXIT trace entry.
    
    
    
    
    
    
    
    
    Additional Symptom(s) Search Keyword(s): KIXREVDWZ
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: A Java program accessing DB2            *
    *                      experiences a series of abends (AD2U,   *
    *                      and AEY9) following a DB2 PLAN access   *
    *                      error. CICS abends with message         *
    *                      DFHPC0409.                              *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    A Java application program running in CICS attempts to access
    DB2, but is not running with authorisation to access the
    required DB2 PLAN. The attempt to create a DB2 thread fails,
    and the transaction requests an AD2U transaction dump.
    .
    The following trace entries are issued:
    AP 3265 D2D2  *EXC* FAILED_TO_CREATE_THREAD_FOR_PLAN(planname)
    AP 3251 D2D2  EXIT  DB2_API_CALL/EXCEPTION CREATE_THREAD_FAILED
    .
    Control is returned to the application, with an
    SqlSyntaxErrorException.
       jcc  T2zos T2zosConnection.flowConnect:execConnect:1403:
      DB2 engine SQL error, SQLCODE = -922, SQLSTATE = 42505,
      error tokens = PLAN ACCESS;00F30034 ERRORCODE=-922,
      SQLSTATE=42505
    .
    The application makes a second attempt to access DB2. This fails
    with an abendAD2U because of the earlier error to create a
    thread. Control is returned to the application with an
    SqlException
       jcc  T2zos T2zosConnection.flowConnect:execConnect:1337:
      Connection dead, SQLCODE:-4499, SQLSTATE:null ERRORCODE=-4499,
      SQLSTATE=null
    .
    The application makes a third attempt to access DB2.
    By this point the TRUE has been marked unusable for the current
    task, so this results in abend AEY9 and another SqlException.
    CICS issues trace entry
    AP 2524 ERM   *EXC* TRUE(DSNCSQL )-UNAVAILABLE
    .
    Further attempts by the application to issue DB2 requests also
    generate abendAEY9. The problem is that with each abend,
    the TCAABREC bit is not reset when control is returned to the
    Java application, so now CICS abends with message DFHPC0409.
    .
    In a variation of the reported problem, a task attempts to
    issue just one DB2 request using a protected thread. This
    receives the FAILED_TO_CREATE_THREAD_FOR_PLAN exception due
    to the PLAN access problem.
    That task then ends. The PURGECYCLE specified on the DB2CONN
    expires, and CICS attempts to clean up this thread. The thread
    was never created (csb_thread_created is off) so the
    TERMINATE_THREAD request does nothing, and does not unset
    csb_term_thread.
    The next task attempting to reuse this CSB will get the
    plan access error and FAILED_TO_CREATE_THREAD_FOR_PLAN exception
    but then abend AD3F because csb_term_thread is still on.
    .
    Additional keywords: com.ibm.db2.jcc.am.SqlSyntaxErrorException
                         com.ibm.db2.jcc.am.SqlException
                         AD2U AEY9 AD3F msfDFHPC0409 PC0409
    

Problem conclusion

  • DFHERM has been corrected to switch off the TCAABREC indicator
    when control is returned to a Java application following an
    error. DFHERM has also been updated to ensure that the exit
    trace entry is issued following an abend.
    DFHD2D2 has been updated so that an attempt to run
    TERMINATE_THREAD against a CSB for which a thread was never
    created will clear the csb_term_thread state.
    

Temporary fix

  • *********
                * HIPER *
                *********
    FIX AVAILABLE BY PTF ONLY
    

Comments

APAR Information

  • APAR number

    PI45750

  • Reported component name

    CICS TS Z/OS V5

  • Reported component ID

    5655Y0400

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-07-27

  • Closed date

    2015-10-02

  • Last modified date

    2015-11-03

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

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

    UI31712

Modules/Macros

  • DFHD2D2  DFHERM
    

Fix information

  • Fixed component name

    CICS TS Z/OS V5

  • Fixed component ID

    5655Y0400

Applicable component levels

  • R900 PSY UI31712

       UP15/10/08 P F510 ½

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":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.2","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.2","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
03 November 2015