search cancel

JVMHEAPS - less information for Liberty under CICS than for Z/OS Connect

book

Article ID: 238248

calendar_today

Updated On:

Products

SYSVIEW Performance Management

Issue/Introduction

The JVMHEAPS command displays memory and heap-related storage allocation information for a JVM but this command displays less information for Liberty under CICS than for z/OS Connect.

 

For example:

JVMHEAPS display for Z/OS Connect:

 

Jobname  ASID Application                        MemoryUsage         
ZABC0001 0112 GSV_ZABC0001_040404B4              Heap Usage Total  
ZABC0001 0112 GSV_ZABC0001_040404B4              Nursery-Allocate
ZABC0001 0112 GSV_ZABC0001_040404B4              Nursery-Survivor
ZABC0001 0112 GSV_ZABC0001_040404B4          Tenured-LOA      
ZABC0001 0112 GSV_ZABC0001_040404B4            Tenured-SOA

 

JVMHEAPS display for Liberty under CICS:

 

Jobname  ASID Application                        MemoryUsage          
IKJ3A2ZB 0123 GSV_IKJ3A2ZB_04010DAB              Heap Usage Total     
IKJ3A2ZB 0123 GSV_IKJ3A2ZB_04010DAB             Java heap

 

How to see Nursery and Tenured details on the JVMHEAPS displays for Liberty under CICS?

Cause

The JVMHEAPS and JVMGC commands in SYSVIEW display information that is gathered from JVM MXBeans.

As a simple overview, SYSVIEW asks the JVM for the MXBeans and then SYSVIEW displays whatever the JVM returns.

The JVMBEANS command in SYSVIEW will show all of the beans in a JVM. 

SYSVIEW does not influence the information reported on JVMHEAPS and JVMGC; SYSVIEW merely presents whatever the JVM gives back to SYSVIEW. 

 

When it comes to memory specific MXBeans, which we display on JVMHEAPS, the memory pools returned by the JVM MXBeans can be influenced by several JVM arguments.

These arguments mainly revolve around the type of garbage collection policy specified by the -Xgcpolicy JVM argument. However, there is another JVM argument that is coming into play. 

In older versions of CICS, when you run a JVMSERVER, the JVM argument -XX:+HeapManagementMXBeanCompatibility gets automatically specified.  The JVMARGS command in SYSVIEW will display all the JVM arguments for a given JVM.

This argument tells the JVM to report memory specific MXBeans in a "compatibility mode", where the heap usage information is not split out into the more specific memory pools. It seems this argument no longer gets automatically specified in the newest version of CICS. 

Environment

Release : 16.0

Component : SYSVIEW

Resolution

To resolve the issue it is necessary to update the jvm.profile file for the JVMSERVER and add the following line to remove the beans from being reported in a compatibility mode:

 

-XX:-HeapManagementMXBeanCompatibility

 

After restarting the CICS region, the JVMHEAPS will display similar information to the z/OS Connect server.

 

Additional Information

The following link talks about the JVM arguments from a CICS perspective:

 

Garbage collection and heap expansion