Page navigation
The IBM Extensions for Memory Analyzer help you debug generic Java applications and specific IBM software products.
IBM Extensions for Memory Analyzer Overview
The IBM Extensions for Memory Analyzer offer both additional capabilities for debugging generic Java applications, and capabilities for debugging specific IBM software products by building knowledge of those products into the extensions. Extensions are currently available for:
- Java SE Runtime
- WebSphere Application Server
- CICS Transaction Gateway
Using the IBM Extensions for Memory Anayzer will enable you to:
- Visualize the state of both your code and that of the IBM software products used in the application.
- Confirm the configuration of the IBM products by looking at the loaded configuration, and the state of the configured components: eg. cache and thread pool configurations.
- Inspect the size and contents of IBM product components, for example cache or HTTP session contents.
Features and benefits
The IBM extensions provide two types of additional features to Memory Analyzer:
- always on extensions which require no action from the user
- pull down menu extensions which provide the ability for users to generate reports and information about various parts of the application.
Always on Extensions
Some IBM extensions are "always on," meaning that various views show additional information about an object, either by adding more information next to the object, or by replacing the object name with something more meaningful. In the case shown below, the selected object now describes how many sessions are in the MemoryStore, and what Web application those sessions are for: "PlantsByWebSphere at /PlantsByWebSphere currently with 1000 sessions plus 109038 overflow sessions". With the IBM Extensions the object now immediately describes the origin of the memory use.
Figure 1. Sessions in the MemoryStore
In the Dominator tree view (which is a list of objects that together retain the entire Java heap), the classloader grouping replaces the name of the class loader with a description of what it loads. For example, the selected class loader in the screenshot below now shows that it is the class loader for the PlantsByWebSphere Web application.
Pull down menu extensions
A number of the IBM extensions are executable queries that can be found under the Query Browser pull down menu. The IBM Extensions can be found under the IBM Extensions category and are divided into four sub-categories: Utilities, Java SE Runtime, CICS Transaction Gateway, and WebSphere Application Server.
These pull down menu extensions provide reports on different aspects of the IBM software. Below are some examples:
- Utilities
-
Find Garbage Fragments
Searches the Java heap for fragments (chains) of objects on the Java heap that are eligable for garbage collection. These fragments are then displayed in descending order of retained memory.
-
Export Object
Enables an object graph to be written as a textual representation to a text file. The query allows you to specify the output file using -outputfile and the depth of the tree to write using -maxdepth.
-
Find Garbage Fragments
- Java SE Runtime
-
Overview
Provides a summary of the Java runtime and process, including vendor, version, operating system, Java home directory, class path, and command line.
-
Overview
- WebSphere Application Server
-
Overview
The WebSphere Application Server Overview query is a simple query that shows the version and fix pack level of the WebSphere Application Server® currently running, along with the server, node, and cell name, the inferred start up time of the process, and a list of all applications and their running state. It also includes an experimental section breaking down the memory usage of the Java heap according to components.
-
HTTP Sessions List
One common class of problems is related to applications' usage of HTTP sessions. In addition to OutOfMemoryErrors, other issues include finding the contents of sessions, timeout values, session identifiers, and the applications to which the sessions belong. There are many implementation details that make finding sessions and their values non-trivial. These details include different class names across different versions of the product and multiple maps per session (one for persisted sessions and the other for non-persisted sessions, both of which might be active in a single session). The HTTP Sessions List query will extract all of this information into a tree view. The columns below the dotted line in the figure are a continuation of the columns above.
Figure 3. HTTP Sessions list tree viewEach session object can be expanded to reveal its key/value pairs. In Figure 4, there are five attributes in the session. Each key is of the form sessN and the value is a custom object. If the value is something other than a String, then the row can be expanded to reveal the object.
Figure 4. HTTP Sessions list expanded tree view
-
Overview
- CICS Transaction Gateway
-
Overview: Provides a basic overview of CICS Transaction Gateway, including version and build information, the
configuration that it is running with, and a list of all the environment variables set.
-
Active Conversations: Provides all the active IPIC conversations in the CICS Transaction Gateway, the session they currently have and
their states.
-
Overview: Provides a basic overview of CICS Transaction Gateway, including version and build information, the
configuration that it is running with, and a list of all the environment variables set.
System requirements
IBM Extensions for Memory Analyzer is installed within the IBM Monitoring and Diagnostic Tools for Java -- Memory Analyzer tool available in the IBM Support Assistant (ISA) and the open source Eclipse Memory Analyzer Tool (MAT).
The extensions support the following formats:
- IBM Portable Heap Dump (PHD)
- IBM Portable Heap Dump (gzipped)
- IBM SDK for Java JExtracted System Dump
- HPROF binary heap dumps
However it is recommended that either IBM SDK for Java JExtracted System Dumps or HPROF binary heap dumps as these contain additional data that the extensions leverage.
Installation
The IBM Extensions for Memory Analyzer are installed either into the IBM Monitoring and Diagnostic Tools for Java - Memory Analyzer tool in the IBM Support Assistant (ISA) using the using the ISA update capability, or into Eclipse Memory Analyzer using the following steps:
- Start Eclipse Memory Analyzer and select Help -> Install New Software...
- Select "Search for new features to install" and click Next
- Select "Add..." to add a new update site
- Add a Name, and a Location of "http://download.boulder.ibm.com/ibmdl/pub/software/isa/isa410/production/" and click OK
- Select the plug-ins starting with "IBM Extensions for Memory Analyzer -" and click Next
- Click though the license agreements, and select Finish to install the plug-ins
Contact information
For comments specific to this download please send mail directly to us.
Speak to the developers at the IEMA forum.
Additional resources
You can find out more about using the IBM Extensions for Memory Analyzer from the following resources:


