IBM Support

PH12280: IMPROVE JVMSERVER RECYCLING AFTER TCB FAILURE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When a CICS task has made a call into DB2 (regardless of
    whether it is on a T8 or L8) and then purged, CICS has to abend
    the TCB in order to purge the task since it is currently
    outside of CICS' control.  When the TCB is a T8 that means a
    thread in a JVM is being terminated abnormally.  The JVM is not
    designed to tolerate this scenario and the POSIX standards
    dictate that the process should be terminated.  CICS can't
    guarantee the integrity of the JVM at this point so attempts to
    recycle it.  To recycle the JVM a phaseout is issued by CICS
    against the JVMSERVER so that work can drain gracefully.
    However, it is possible that termination of the TCB by the
    purge prevents phaseout from ever completing.
    
    This APAR will update CICS to escalate through the JVMSERVER
    purge levels to ensure the JVMSERVER is recycled.
    

Local fix

  • No Local Fix.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS Users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: JVMSERVER hangs at BEING DISABLED       *
    *                      after a DB2 task is purged.             *
    ****************************************************************
    A CICS Java task is forcepurged while control is in Db2 on a T8
    TCB.  This causes the task to abend AD2R and for the T8 TCB to
    be abtermed.  CICS recovery routine gets control and gets a TCB
    failed exception, then CICS issues a phaseout against the
    JVMSERVER to allow work to drain in a graceful manner then
    restart.  However if another thread has also abended CICS will
    wait indefinitely.
    

Problem conclusion

  • CICS has been changed to escalate JVMSERVER disable after TCB
    failure to ensure the JVMSERVER is recycled.
    
    The CICS Transaction Server for z/OS V5.3, V5.4 and V5.5
    Knowledge Center has been altered as follows:
    
    In 'Options for JVMs in a CICS environment' in section 'JVM
    server options' in table 1, the following entry is added:
    PURGE_ESCALATION_TIMEOUT|Optional|Optional|Optional|Optional
    
    In 'Descriptions of options' section , the following entry is
    added:
    PURGE_ESCALATION_TIMEOUT={time|15s}
    Controls the time between disable actions when a JVM server
    encounters a TCB failure.  After each timeout CICS escalates to
    the next disable action, for example from phaseout to purge,
    until the JVM server has been recycled. For a Liberty JVM
    server, there is a minimum 60s timeout from phaseout to purge.
    
    In 'DFHSJnnnn messages' in section 'DFHSJ1007 W',
    'System action' is updated:
    
    CICS has detected that an abend has left the JVM in an
    inconsistent state. CICS disables the JVMSERVER resource with
    the PHASEOUT option to allow existing work in the JVM to
    complete where possible and prevent new work from using the JVM.
    If this fails to disable the JVMSERVER within the interval
    specified by the PURGE_ESCALATION_TIMEOUT JVM server option,
    CICS escalates to the next disable action, until the JVMSERVER
    is disabled. After the JVMSERVER is successfully disabled,
    message DFHSJ1008 is issued. CICS attempts to re-enable the
    resource to create a new JVM.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH12280

  • Reported component name

    CICS TS Z/OS V5

  • Reported component ID

    5655Y0400

  • Reported release

    000

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-05-22

  • Closed date

    2019-11-26

  • Last modified date

    2019-11-30

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

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

    UI66669 UI66670 UI66671 UI66672 UI66673 UI66674 UI66675

Modules/Macros

  • DFHAPJVM DFHAPLJP DFHAXIS2 DFHCAL64 DFHCDJNI DFHCDK64 DFHKETIX
    DFHMESJE DFHSJBD  DFHSJDM  DFHSJDS  DFHSJDUF DFHSJIN  DFHSJIS
    DFHSJIX  DFHSJJS  DFHSJL   DFHSJLOG DFHSJNA  DFHSJNDI DFHSJNR
    DFHSJNT  DFHSJPP  DFHSJPTI DFHSJRE  DFHSJRL  DFHSJRM  DFHSJRT
    DFHSJSA  DFHSJSC  DFHSJSM  DFHSJSR  DFHSJST  DFHSJTE  DFHSJTH
    DFHSJTRI DFHSJWL  DFHSJXM  DFJ@H317 DFJ@H356 DFJ@H360 DFJ@H427
    DFJ@H467 DFJ@H468 DFJDTCOE DFJOUTRE DFJWLPBP DFJWLPPL
    

Fix information

  • Fixed component name

    CICS TS Z/OS V5

  • Fixed component ID

    5655Y0400

Applicable component levels

  • R000 PSY UI66669

       UP19/11/28 P F911

  • R003 PSY UI66671

       UP19/11/30 P F911

  • R00D PSY UI66670

       UP19/11/30 P F911

  • R100 PSY UI66672

       UP19/11/28 P F911

  • R103 PSY UI66674

       UP19/11/30 P F911

  • R10D PSY UI66673

       UP19/11/30 P F911

  • R200 PSY UI66675

       UP19/11/28 P F911

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

Document Information

Modified date:
30 November 2019