IBM Support

PK06748: CICS LOOPS WHEN RUNNING JAVA PROGRAM, MAY SEE DFHSM0139. PROBLEM MAY OCCUR WHEN MAXJVMTCBS OR MAXXXXXTCBS VALUE REACHED.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • CICS goes into a loop when running a JAVA program.  You may see
    message "DFHSM0139 The amount of MVS storage available to CICS
    is critically low."  This is not the reason or cause for the
    loop, but it was seen in the reporting customer's case.  The
    trigger for the problem is MAXJVMTCBS or any of the other
    MAXxxxxTCBS values is reached, the new task is suspended while
    it waits for an OPEN TCB.  If the task is purged for any reason,
    the loop may occur.
    .
    The problem arises in DFHDSDS4 in SCAN_AWAIT_QUEUE: processing
    of await_tcb.  This is entered when CICS has reached MAXxxxxTCBS
    (in this case MAXJVMTCBS) and CICS needs to SUSPEND this latest
    task while it waits for an OPEN TCB.  If the SUSPEND exits
    normally then all is well.  But if the task is PURGEd for
    whatever reason, it is removed from the awaiting_open_tcb queue.
    If also this is the only TCB waiter then awaiting_open_tcb goes
    to zero and CICS completes await_tcb.  But OLDEST_AWAITER_TIME
    still has the STCK value from when the task entered the wait for
    a OPEN TCB.  This is detected in partition_exit where
    check_long_waiters is called and the STCK value causes
    notify_recommended = TRUE and this in turn results in the Call
    notify_dsti. notify_dsti issues the
    ?DFHTISRI
           FUNCTION(REQUEST_NOTIFY_IMMEDIATELY)
           TISRI_TOKEN(R_N_I_DEAD_TCBS_TOKEN)
    which immediately ATTACHs the DS system task to run
    PROCESS_DEAD_TCBS.  This repeats again and again causing the
    build up of over 5,000 DTAs.  When CHECK_EXECUTABLES next runs
    it will remove all these UNUSED DTAs.  But the ATTACHs will
    continue and the cycle begins again.  There are about 5000
    UNUSED DTAs and DS has a limit to prevent any more being created
    and this results in the trace entries indicating
    INSUFFICIENT_STORAGE:
    DSTCB QR DS 0004 DSSR ENTRY RESUME
    DSTCB QR DS 0005 DSSR EXIT  RESUME/OK
    TI    QR DS 0005 DSSR EXIT  SUSPEND/OK
    TI    QR DS 0002 DSAT ENTRY ATTACH
    TI    QR DS 0095 DSAT *EXC* TASK_GETMAIN_FAILURE
    TI    QR DS 0003 DSAT EXIT ATTACH/EXCEPTION INSUFFICIENT_STORAGE
    TI    QR TI 0162 TISR *EXC* NOTIFY-TASK-NOT-ATTACHED
    TI    QR DS 0004 DSSR ENTRY SUSPEND
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All                                          *
    ****************************************************************
    * PROBLEM DESCRIPTION: CICS loops after purging an open TCB    *
    *                      task.                                   *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    A system has reached MAXJVMTCBS and so any new JVM tasks have to
    be suspended waiting for a TCB to become free. During suspend
    one of these new tasks gets purged, either for dtimout or
    manually, and so the task has to be removed from the
    waiting_open_tcb queue. If this is the only TCB waiting then
    awaiting_open_tcb will drop to zero but OLDEST_AWAITER_TIME
    still has the STCK value from when the task was suspended. This
    causes notify_dsti to be issued repeatedly as it is not cleared,
    causing a slow down in CICS and eventually the DFHSM0139 message
    may be issued.
    
    Additional keywords: msgDFHSM0139
    

Problem conclusion

  • Change DFHDSDS4 in routine SCAN_AWAIT_QUEUE to ensure that
    OLDEST_AWAITER_TIME is set correctly when a TCB is removed from
    the waiter queue.
    

Temporary fix

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

Comments

APAR Information

  • APAR number

    PK06748

  • Reported component name

    CICSTS 3.1 Z/OS

  • Reported component ID

    5655M1500

  • Reported release

    400

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2005-06-06

  • Closed date

    2005-06-10

  • Last modified date

    2005-07-01

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

    PK02589

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

    UK04460

Modules/Macros

  •    DFHDSDS4
    

Fix information

  • Fixed component name

    CICSTS 3.1 Z/OS

  • Fixed component ID

    5655M1500

Applicable component levels

  • R400 PSY UK04460

       UP05/06/21 P F506

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":"3.1","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":"3.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
01 July 2005