OMEGAMON JVM monitoring for z/OS Locking Data
pkeargle 270006N3R8 Visits (11142)
Locking is one of the most important aspects in Java application programming. When applications are multi-threaded, they must protect data from concurrent updates. Locking protects the integrity of shared data in a multi-threaded application.
There are some conflicts that locking can cause if used improperly. Some of these problems are deadlocks, improper or frequent lock acquires and excessive locking resulting in high CPU complications. OMEGAMON Monitoring for JVM on z/OS is great tool that can quickly assist with diagnosing these potential performance issues.
In this scenario, we will discuss how an application with poor locking architecture exposed as high lock utilization values on an identifiable object. The screenshot below shows “Highest JVM Statistics” workspace displaying the current JVM workloads available. This subpanel can be viewed on the either the KOBSTART or KJJSTART workspace.
The LPAR called SYS shows a JVM with high “Lock Utilization” and “Avg Lock Hold Time” which means we may be having performance issues.
To dig into this deeper, navigate to the next workspace using either the "S" action option on that row of data, or since "S" is the default action, simply put your cursor on the row of data and press enter to drill down to the next workspace (screenshot below).
This workspace shows us a summary of all JVMs monitored. The “Lock Missed %” tells us the percentage of total gets for which the thread that is trying to enter the lock on synchronized code had to wait. The “Lock Utilization %” indicates the percentage of the time that the lock was held. The “Avg Lock Hold Time” being very high suggest that the application has been coded to spend a lot of time in a synchronized block of code. With the use of OMEGAMON Monitoring for JVM on z/OS, we were quickly able to find the performance issue, which may have gone unnoticed until much later.
To fully review all information pertaining to these lock attributes, drill down to the "Lock Statistics" workspace using the "L" action option on the row of data to show, in detail, the attributes for all locking events collected (screenshot below).
In this workspace, we have the following attributes (Monitor Name, Get Count, Average Hold Time, Slow Gets, Recursive Acquires, Percent Missed and Percent Utilization) collected by a locking event. You have the option to sort on the “Percent Utilization” column. As we can see the monitor name “com
OMEGAMON Monitoring for JVM is available as priced feature for OMEGAMON XE on z/OS V5.3.0, and is also an integral part of Service Management Suite on z/OS V1.4, OMEGAMON Performance Management Suite for z/OS, and OMEGAMON on z/OS Management Suite. For more information, contact your local IBM representative.