A state dump is any type of file or other diagnostic artifact that can be extracted from a running application server and that contains information about the current state of that entire application or some components within that application server. The state may include static configuration data that is currently in effect within that application as well as dynamic information about operations in progress, internal tables, etc. There are many different potential types and implementation of state dumps, with different formats, different levels of information that they contain, and so on.
A JVM system dump, or simply system dump, is a particular type of state dump that can be extracted from a running JVM process or obtained upon termination of a JVM process. It is basically a low-level image of the entire contents of that process, including every memory location, the state of every thread, every stack, etc. It is normally implemented as a OS-level core file (UNIX), process dump (Windows) or svcdump (z/OS).
The Diagnostic Tooling Framework for Java (DTFJ) is a technology provided by the IBM JDK to read the contents of a system dump and provide access to most process-level and JVM-level entities contained in that dump (every process thread, every Java thread, every Java class, every Java object, every Java monitor, etc.) . This information is provided to users through a standardized DTFJ API. A dump analysis tool is a tool that uses a technology like DTFJ to read the contents of a dump file and present the information to users in a convenient way to help diagnose problems. The dump analysis tool would normally perform various computations to derive high-level information from the low-level information contained in the raw dump. For example, it might count all the Java objects present in a dump to determine the total size of memory used; or it might find a particular Java object that implements the EJB container and display the current contents of the EJB cache.
An analysis module is one component of a dump analysis tool. The dump analysis tool normally contains an extensible collection of analysis modules, each of which is specialized to display one particular aspect of the contents of the dump or perform one particular computation to derive higher-level information from the dump. Different analysis modules can be authored by different people (each of whom may be an expert in a different area) and added to the dump analysis tool incrementally over time. An end-user of the dump analysis tool has access to all the analysis modules currently installed in the tool, regardless of how or when each module was created. In effect, the dump analysis tool can be thought of as a container that provides common services and mediates the access to all the analysis modules that it contains.
A report is the unit of output of the dump analysis tool produced as a result of invoking one or several analyzer modules. It is a piece of human and machine readable text, HTML or XML that shows the result of one particular analysis performed on the dump. The report can be a purely factual rendition of the information associated with one aspect of the system (to be interpreted by the reader) or it can contain various hints and observations about potential problems and anomalies that have been automatically detected. Some reports can be very long and detailed whereas other reports might contain a single line (e.g. "deadlock detected"). The dump analysis tool might generate one or multiple reports during a single session, depending on what the user requests.