After working many years with IBM WebSphere Application Server on Solaris, Linux on PSeries, XSeries and ZSeries and Z/OS. I came to realize the IBM version of Java has much better debug tools and documentation available to perform debugging and performance tuning. Examples of these features are the IBM AOT Ahead of Time Compiler which reduces the overhead of JIT and it’s storing of the native code in cache for multiple JVMs on same system to utilize it. Also IBM and Oracle can perform Class Sharing but IBM’s documentation is much more thorough. Another example of IBM’s great enhancements to Java is the option -xtune:virtualized. Further documentation on -Xtune:Virtualized is contained in many IBM presentations’ any example of one from Java Expert Time Ellison from the IBM Hursley Team.
The Debug Features of the IBM JDK:
IBM HeapAnalyzer — Great lightweight tool for viewing IBM phd heap files that are produced not as accurate as Eclipse Memory Analyzer with the IBM Java Debug Extensions.
IBM Thread Monitor and Dump Analyzer for Java — Great lightweight tool similar to HeapAnalyzer for viewing javacore files produced from the IBM JDK and or thread output produced from Oracle JDK.
IBM Pattern Modeling and Analysis Tool for Garbage Collection — Great lightweight tool similar to the above tools for doing quick analysis of garbage collections logs.
Eclipse Memory Analyzer — A more heavy weight tool for analyzing Java Memory and Thread problems. This tool is great for working with System Dumps to view threads and data inside of the address spaces. Below are the IBM add-ons for Eclipse Memory Analyzer which add additional functionality for debugging IBM Java and WebSphere features.
IBM Java HealthCenter — HealthCenter allows a user to attach to a running JVM and obtain debug and performance information without causing serious impact to the running application. This has allowed many folks to see performance issues including debugging Titan Graph API’s from Tomcat to HBase and Websphere Deployment Manager High CPU problems.
And finally a link to probably the best Java and System Debugger I have ever met IBMer Kevin Grigorenko here is a link to his IBM SWAT blog. Kevin helped a co-worker and myself debug the very low-level Linux Kernel Futex problem introduced in early 2015 before it was a public bug.