IBM Support

PH58371: CICS Liberty JVM server - Threadlocal based memory leak

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Customer observed sustained high CPU due to excessive time spent
    in JVM Garbage Collection (GC).
    
    Dump analysis showed the root cause is a threadlocal based
    memory leak of objects of type
    com.ibm.cics.wlp.jta.impl.CICSUOWEventListener$1
    
    This is similar to PH40286, where the issue was resolved for the
    late-binding case.
    
    This APAR was taken to fix an additional code path that can
    can result in the same leak.
    

Local fix

  • 1. If your applications in Liberty do not make use of CICS
    services you can bypass this issue by running the JVM server in
    STANDARD mode rather than INTEGRATED mode.
    
    2. To reduce the operational impact of sustained time in GC,
    especially on z/OS systems with a high number of processors and
    business critical shared workloads, throttle the number of GC
    Worker threads explicitly using the switch:
    -Xgcthreadsn
    where n is the maximum number of GC Worker threads that will be
    created.
    This switch can be coded in the jvmprofile file used for the
    CICS JVM server involved.
    This second point is intended to help ameliorate the effect of
    sustained time in GC.
    It does not address or bypass the memory leak.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: A Java memory leak occurs when no CICS  *
    *                      Task previously exists and then is      *
    *                      subsequently not created in the period  *
    *                      between a Liberty UserTransaction begin *
    *                      and end.                                *
    ****************************************************************
    CICS registers a UOWEvent Listener when a Liberty JVM server is
    enabled in order to enlist CICS resources in a UserTransaction
    if necessary.
    However if a UserTransaction begins and ends without a CICS
    Task being created, then the UserTransaction's Listener is not
    removed.
    
    Under sufficient load this small leak can cause a Java
    OutOfMemoryError
    

Problem conclusion

  • CICS was updated so that the Listener is removed when the
    transaction end occurs (through Commit or Rollback).
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH58371

  • Reported component name

    CICS TS Z/OS V5

  • Reported component ID

    5655Y0400

  • Reported release

    200

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-11-24

  • Closed date

    2024-03-11

  • Last modified date

    2024-04-01

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

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

    UI96020 UI96021

Modules/Macros

  • DFJ@H415
    

Fix information

  • Fixed component name

    CICS TS Z/OS V5

  • Fixed component ID

    5655Y0400

Applicable component levels

  • R200 PSY UI96020

       UP24/03/12 P F403 ¢

  • R300 PSY UI96021

       UP24/03/12 P F403 ¢

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":"BU048","label":"IBM Software"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.5","Line of Business":{"code":"LOB70","label":"Z TPS"}}]

Document Information

Modified date:
04 April 2024