IBM Support

Eclipse Memory Analyzer Tool with DTFJ and IBM Extensions

How To


Summary

The Eclipse Memory Analyzer Tool (MAT) is used for investigating Java memory issues such as OutOfMemoryErrors. This page provides downloads for the Eclipse Memory Analyzer Tool along with the IBM DTFJ extension and IBM Extensions for Memory Analyzer plugins pre-installed.

Steps

There are two builds of this tool. One build is to read dumps produced by IBM Java 8 and below. The other build is to read dumps produced by IBM Semeru Runtimes Java. You can install both builds in different directories and use the appropriate one depending on your dump type. Both builds process HPROF dumps produced by a HotSpot JVM the same.
 
  1. Ensure Java 21 is on your PATH (preferably, an IBM Semeru Runtimes Java 21 JDK to enable advanced jvmpview extensions)
  2. Download:
    1. To read dumps produced by IBM Java 8 and below:
      1. Windows x86_64/amd64
      2. macOS x86_64/amd64
      3. macOS arm64/aarch64
      4. Linux x86_64/amd64
      5. Linux arm64/aarch64
      6. Linux POWER/ppc64le
      7. Eclipse archived update site
    2. To read dumps produced by IBM Semeru Runtimes Java:
      1. Windows x86_64/amd64
      2. macOS x86_64/amd64
      3. macOS arm64/aarch64
      4. Linux x86_64/amd64
      5. Linux arm64/aarch64
      6. Linux POWER/ppc64le 64-bit
      7. Eclipse archived update site
  3. On macOS, open the Terminal application, change directory to where you downloaded the file and run:

    xattr -d com.apple.quarantine *.tar.gz
  4. Unzip or untar the downloaded file
  5. If you would like to configure MAT options:
    1. Edit the following file:
      1. Windows/Linux: MemoryAnalyzer.ini
      2. macOS: Memory Analyzer Tool*.app/Contents/Eclipse/MemoryAnalyzer.ini
    2. If you want to set the JVM that MAT launches with, add the following lines above -vmargs and replace the directory with the full path to the Java bin directory; for example:

      -vm
      C:\Program Files\Java\jdk-21.0.7+6\bin\
    3. If you want to change JVM arguments, add/edit lines under -vmargs; for example:

      -vmargs
      -Xmx10g
  6. Launch MAT:
    1. Windows: MemoryAnalyzer.exe
    2. macOS: Memory Analyzer Tool for IBM Java.app or Memory Analyzer Tool for IBM Semeru Runtimes.app
    3. Linux: MemoryAnalyzer

Additional Information

The Eclipse Memory Analyzer Tool is licensed under the Eclipse Public License Version 2.0. The source code is available at https://www.eclipse.org/mat/. The builds on this page are built by using extra patches to MAT that are available for download at https://public.dhe.ibm.com/software/websphere/appserv/support/tools/iema/mat_patches.zip.
 
Revision History
  • 9 February 2026:
    • Thread Highlights extension:
      • Show any thread locals larger than 50MB
      • Extract various Maximo details
      • Extract various SQL query details
  • 13 January 2026:
    • Upgrade to Eclipse 2025-12
    • Upgrade base MAT (PR 157)
    • Add pending PR 137 but must be enabled with -Dorg.eclipse.mat.parser.internal.snapshot.ObjectMarkerFactory.useOldMarker=false
  • 12 January 2025:
    • A significant issue has been found with IBM Java & IBM Semeru Runtimes operating system core dumps where some active threads may be marked as unreachable. With MAT's default virtual garbage collection when loading a dump, this might remove significant live chunks of the heap from view. This build of MAT includes a workaround while the DTFJ issue is being investigated and this workaround forces all threads marked as ALIVE to be strong GC roots (PR 150).
    • Avoid the issue where one support engineer opens the dump in the right build of MAT, and then another support engineer launches the wrong build of MAT and "successfully" re-opens that same dump with the wrong build of MAT which can cause all kinds of issues with operating system core dumps (PR 152). MAT will now give the same error message on re-opening if the wrong build of MAT is used.
    • Either build of MAT may now be used to open PHDs because PHDs are the same for IBM Java and IBM Semeru Runtimes (PR 154).
    • The Thread Highlights query has been moved to IBM Extensions } Java SE Runtime
    • Add various thread highlights for Maximo.
  • 4 November 2025:
    • Upgrade to Eclipse 2025-09
  • 18 August 2025:
    • Fix performance regression in leak suspects report due to cache thrashing.
    • Fix the ability to use advanced OpenJ9 jdmpview & related commands when MAT is run on top of IBM Semeru Runtimes.
  • 2 July 2025:
    • Upgrade base MAT to latest commits
    • Add WebSphere Liberty leaked application classloaders query (currently requires OS core dump or HPROF): IBM Extensions } WebSphere Application Server } Class Loaders } Liberty } Merge strong reference paths to GC roots for Liberty AppClassLoaders. In addition to listing leaked classloaders, the tree result shows the merged shortest paths to GC roots for those classloaders.
    • Upgrade to Eclipse 2025-06
  • 16 April 2025:
    • Upgrade base MAT to latest commits
    • Set default option -Dorg.eclipse.mat.parser.internal.snapshot.ObjectMarkerFactory.useOldMarker=true to use the old ObjectMarker code pending resolution of issue 57
  • 25 March 2025:
    • Upgrade Base MAT to 1.17.0
    • Upgrade to Eclipse 2024-12
    • New *.log.index file which saves all log entries from MAT for easier post-mortem review of parse issues. This includes a new message which shows whether the dump was parsed with keep unreachable objects: "Keep unreachable objects preference is set to false
    • Add WebSphere Liberty classloader resolver
  • 14 January 2025:
    • Upgrade Base MAT to 1.16.1
    • Upgrade to Eclipse 2024-12. Should fix older Windows crashes through https://github.com/eclipse-platform/eclipse.platform.swt/pull/1568
    • Standalone update sites now compiled with Java 8 for use in older Eclipse installations
    • Add List Distinct Objects query
    • Add various queries and resolvers for Session Initiation Protocol (SIP) in WebSphere traditional and Liberty
    • Better handling of IBM Semeru Runtimes V8 dumps
    • Add query to analyze com.ibm.ws.cluster.selection.RouterMediator memory issues
  • 20 September 2024:
    • Upgrade DTFJ to the ones from IBM Java 8.0.8.30 and IBM Semeru Runtimes 21.0.4.1. This resolves errors related to J9BuildFlags.env_data64 with core dumps from newer Semeru JVMs.
    • Upgrade to Eclipse 2024-09. Note that Eclipse 2024-09 requires more recent versions of Windows; for example, Windows Server 2016 no longer works.
    • Running MAT now requires Java 21. The requirement to use IBM Semeru Runtimes is removed and HotSpot JVMs may also be used; however, Semeru is generally recommended. Semeru is required for some advanced jdmpview extensions.
    • The MAT builds now build and package the com.ibm.dtfj plugin directly rather the previous patching that was done. This should resolve previous upgrade issues due to Eclipse class caching.
  • 29 May 2024:
  • 22 May 2024:
  • Upgrade to Eclipse 2024-03
  • Detect dump truncation using DTFJ and raise a fatal error by default for truncated dumps. Though not recommended, such errors may be avoided under settings } Memory Analyzer } DTFJ Parser } How to perform a check of the reliability of the dump != Raise an error and stop processing if the dump is considered unreliable
  • Detect if the dump was produced by IBM Semeru Runtimes but the running version of MAT is built for IBM Java dumps, or vice versa, and raise a fatal error by default if there is such a mismatch. The latter configuration is controlled with -Dorg.eclipse.mat.dtfj.implementation=IBM Semeru Runtimes. Though not recommended, such errors may be avoided under settings } Memory Analyzer } DTFJ Parser } How to perform a check of the reliability of the dump != Raise an error and stop processing if the dump is considered unreliable
  • Fix duplicate WAS HTTP sessions for PHDs
  • Change "Problem Suspect" to "Large Consumer" in the leak suspects report
  • Update query that converts an exception object's stack array to a human readable stack trace from long[]'s to also support int[]'s
  • 5 December 2023:
    • Update to MAT 1.15
    • Upgrade to Eclipse 2023-09
    • Update to IBM Java DTFJ 8.0.8.15 and Semeru DTFJ 17.0.9.0
    • Add Eclipse archived update site downloads
  • 31 July 2023:
    • Update base MAT
    • Upgrade DTFJ from IBM Java 8.0.8.6 and Semeru 17.0.7.0
    • Enhance tWAS HTTP sessions query to show proper timezone-adjustment, oldest & newest session creation time, oldest & newest session access time, and session count by application name
    • Enhance tWAS HTTP session holder name resolver for client server mode
    • Add Liberty product version and installation directory to WAS Overview query
  • 5 June 2023: Enhance WAS HTTP Session queries, and add Java 17 JVM arguments to handle J9 dumps.
  • 9 May 2023:
    • Update base MAT to 1.14 and Eclipse 2023-03
    • MAT now requires launching with Java 17
    • Update DTFJ to 8.0.8.0/11.0.18.0
    • The files have been renamed to clarify the different dumps they can load:
      • IBM Java: From com.ibm.java.diagnostics.memory.analyzer.MemoryAnalyzer-* to com.ibm.java.diagnostics.memory.analyzer.MemoryAnalyzer.ibmjava-*
      • IBM Semeru Runtimes: From com.ibm.java.diagnostics.memory.analyzer.MemoryAnalyzer.openj9-* to com.ibm.java.diagnostics.memory.analyzer.MemoryAnalyzer.semeru-*
    • New IEMA queries to understand the retained heap utilization of WAS XCI
  • 27 December 2022:
    • Update base MAT including leak suspects optimization
    • Update DTFJ to 8.0.7.20/11.0.17.0
    • Add Help } Diagnostics
    • Add Thread Stack menu item
  • 16 August 2022: Update DTFJ versions and the latest MAT
  • 23 March 2022: Update DTFJ versions and Cognos extensions
  • 10 December 2021: First version
These downloads are provided as is without any warranty or support. For any issues, contact Kevin Grigorenko (kevin.grigorenko@us.ibm.com) and we'll try to resolve any issues as time permits.

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB77","label":"Automation Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"ARM Category":[{"code":"a8m3p0000000rJtAAI","label":"IBM WebSphere Liberty-All Platforms-\u003ELiberty Profile-\u003EOutOfMemory"},{"code":"a8m50000000CdASAA0","label":"WebSphere Application Server traditional-All Platforms-\u003EOutOfMemory"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB08","label":"Cognitive Systems"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG9NGS","label":"IBM Java"},"ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
09 February 2026

UID

ibm16537402