Introduction to Java-oriented IBM Dump Analyzer (IBM Dump Analyzer)
Introduction: Java™ applications have become increasingly complex, so it is no longer easy to diagnose problems with these applications and may require a large amount of work from an external service organization. It will save time and expense if you can indicate the right direction. The IBM Dump Analyzer for Java tool enables basic analysis of formatted system dumps and generates concise reports that guide you through the next steps.
The Java language has become the dominant language in software development, so the stability of Java Virtual machines (VMS) has become a very important issue. A VM is usually a reliable software, but an error can occur at run time for a variety of reasons. A small number of these problems are caused by the VM's own error, but in most cases the cause of the problem is due to errors or improper configuration of the software stack on top of the VM (such as Ibm®websphere®application Server) or the application itself.
With the maturity of information technology, the software stack of a typical project becomes more and more complex, which makes it increasingly difficult for the developer to determine the cause of the problem. In such a complex environment, you may have to face a lot of information in order to diagnose an error. In a production environment, you might have to face heaps of gigabytes, hundreds of threads, thousands of classloader, tens of thousands of classes, and huge numbers of objects.
IBM Dump Analyzer for Java (hereafter known as Dump Analyzer) is an extensible framework for addressing this difficulty. It can be used by all internal IBM users and external customers to diagnose problems with IBM's Java Platform Development Kit (IBM SDK). It uses the parser to examine the formatted system dump (each parser performs a specific query on the dump) and uses the script to connect the results to form a concise analysis report. In its earliest two versions, Dump Analyzer will report one of the following four items:
Not enough memory
Deadlock detection
The VM gets signaled and terminates (due to an internal or middleware/java application error)
Need to carry out further investigations
The first three items can be mapped to a class of VM issues, which are described in the next section of this article.
It does not require background knowledge to read the content later in this article. You can get step-by-step instructions for using the Dump Analyzer Analysis system dump, while understanding the tool and its architecture at a higher level. After reading this article, you should have a deep understanding of the circumstances in which you need to use the Dump Analyzer and have a certain understanding of its infrastructure.
View VM problem types from a higher level
There may be several ways in which a VM can fail to perform, and each failure requires a different diagnostic method. Before you learn more about the work of the Dump Analyzer, it is important to review these different types of issues and the analysis needed to address them.
Not enough memory
The VM may fail due to insufficient memory-VM uses Java heap memory or local memory to hold thread stacks, class information, JIT code, image elements, and other devices needed to interact with the operating system.
Diagnosing such problems can be extremely difficult because the memory allocation that causes the problem is not the culprit in itself; a large memory set may continue to grow until the VM eventually runs out of all available heap space. Typically, you need to examine the contents of the heap and compare the heap snapshots of different periods to determine the fast-growing collection of memory.