If you searched for the IBM Thread and Monitor Dump Analyzer — TMDA, or just jca.jar — you are looking at one of the longest-serving tools in the Java troubleshooting toolbox. It has read WebSphere javacores since before "observability" was a word, it is free, and it still works. This comparison will not pretend otherwise. The honest question is what has changed around it: how much of the reading you want to do by hand, on your desktop — and how much you want detected, scored and explained for you.
The 30-second summary
- Choose IBM TMDA if your dumps cannot leave the machine, you live in the IBM J9/OpenJ9 world (WebSphere, Liberty) and you are comfortable driving the analysis yourself in a local desktop app. It is free and battle-tested.
- Choose ThreadMine if you want the dump diagnosed rather than displayed: automatic detection of deadlock, pool exhaustion, thread leak and virtual-thread pinning, an A–F health score, AI root-cause hypotheses, and a timeline across several dumps — in the browser, no install, free to start and plans from US$ 9/month.
- Common ground: both understand IBM javacores, both detect deadlocks, and both cost nothing to try.
What TMDA is (and where to download it)
TMDA is a free desktop tool from IBM, distributed on IBM's support site as a single jar. You run it locally — java -jar jca.jar — open your javacore or thread dump files, and it gives you thread-state counts, monitor and lock analysis, deadlock detection, and a comparison view across multiple dumps. Nothing is uploaded anywhere: the analysis happens entirely on your machine, which for some teams is the requirement that settles the whole choice.
The trade-offs are the ones you would guess for a veteran desktop tool: you need a local Java runtime and the jar on every machine where you analyze, the interface shows you organized data more than it tells you conclusions, and there is no history, sharing or team layer — a dump analyzed is a window closed.
Side-by-side comparison
Compiled in July 2026 against the publicly documented behavior of TMDA. If something has changed, the tool itself is the source of truth — this table is a snapshot.
| ThreadMine | IBM TMDA | |
|---|---|---|
| Price | Free with no sign-up; Pro US$ 9/month | Free (as-is IBM tool) |
| Where it runs | In the browser — dump analyzed server-side | Local desktop app (java -jar jca.jar) |
| Install | Nothing to install | Download the jar + local Java runtime |
| Formats | HotSpot, IBM J9/OpenJ9 javacore, Zing, GraalVM | IBM J9/OpenJ9 javacore (its home turf) |
| Deadlock detection | Yes — automatic, with the chain and evidence | Yes |
| Pool exhaustion / thread leak / VT pinning | Automatic, ranked detectors | — (state counts and manual reading) |
| Health score | A–F grade with breakdown | — |
| AI in the diagnosis | Vein: ranked hypotheses + runbook | — |
| Several dumps | Timeline with automatic degradation point | Side-by-side comparison view (manual) |
| History / team / sharing | Yes, from Free/Pro | — (local files) |
Javacores and OpenJ9: TMDA's home turf
If your stack produces javacore.*.txt files — WebSphere, Liberty, anything on the IBM J9/OpenJ9 JVM — TMDA was built for exactly that format, and decades of WebSphere incidents have been debugged with it. That heritage is real and worth respecting.
It is also no longer a differentiator by itself: ThreadMine's parser identifies the format automatically and reads the same javacores (alongside HotSpot, Zing and GraalVM dumps) with no flags or conversion. The question is not whether your javacore can be read — both tools do it — but what happens next: a window of organized counts on your desktop, or detectors, a score and hypotheses in the browser.
Reading counts vs. ranked findings
TMDA's output is honest, structured raw material: how many threads in each state, which monitors are held, where a deadlock exists. An experienced eye turns that into a diagnosis — the tool assists, you conclude. At 3 a.m., with 800 threads and a vague symptom, the assisting-vs-concluding difference is the whole night.
ThreadMine runs a set of detectors over the parsed dump and names the problems: deadlock chains, lock contention hot spots, pool exhaustion, thread leaks, starvation, and pinning of virtual threads (from a standard Java 21+ dump, no -Djdk.tracePinnedThreads flag needed). Each finding comes ranked, with the evidence and the threads involved, and the whole snapshot gets an A–F health score. On top of that, Vein — the built-in AI — proposes root-cause hypotheses ranked by confidence, each anchored to evidence from the dump, with a runbook of next steps. If you want to see what that engine looks for, the thread dump analyzer guide walks through it.
Several dumps: side-by-side vs. timeline
Both tools understand that one dump is rarely enough. TMDA lets you open several javacores and compare them side by side — you spot the transitions yourself, which works well for a handful of dumps and a trained eye. ThreadMine stitches N dumps into a timeline and marks the inflection point automatically — the moment the pool started saturating or BLOCKED counts took off — so the trend speaks even when you are not sure what you are looking for. Same discipline (collect 3+ dumps a few seconds apart, as covered in how to take a thread dump), different amount of work between you and the answer.
What about TDA, the old Thread Dump Analyzer?
Searches for "TDA" usually mean the other desktop veteran: the Thread Dump Analyzer, the Swing tool from the java.net era focused on HotSpot dumps. It belongs to the same family as TMDA — local, manual, free — with one practical caveat: its development has been dormant for years, so features like virtual threads simply post-date it. If you are on the IBM stack, TMDA is the better desktop pick of the two; if you landed here searching for a TDA replacement with detection built in, that is precisely the gap ThreadMine fills — and the honest privacy trade-off of any hosted tool is the same one discussed in our jstack.review comparison.
When TMDA is enough
- The dump cannot leave the machine. TMDA runs fully local. If policy says no uploads, that requirement decides — and it is a legitimate requirement.
- You are the WebSphere veteran. If you have read javacores for years and know exactly which counts to check, TMDA assists a workflow you already master.
- Occasional, offline use. One dump every few months, on a machine that already has Java — downloading a jar beats adopting anything.
If none of those describe your moment — you want the dump diagnosed rather than displayed, a score instead of counts, or several dumps read as a trend with your team looking at the same link — that is the job ThreadMine was built for.
How to test both
The honest test costs ten minutes and one incident's worth of dumps. Download TMDA from IBM's support page and open your javacore locally. Then paste the same file into the free online thread dump analyzer — first dump needs no sign-up — and compare what each hands back: organized counts on one side; detected problems, a health score and ranked hypotheses on the other. Plans go from a real free tier to US$ 9 (Pro) / US$ 29 (Team) per month when you want history and team workspaces.
Frequently asked questions
Where do I download IBM TMDA?
From IBM’s support site — search for "IBM Thread and Monitor Dump Analyzer for Java (TMDA)". It ships as a single jar (jca.jar, historically also jca<version>.jar) and runs locally with "java -jar jca.jar", so you need a Java runtime on the machine. It is free.
Does TMDA detect deadlocks?
Yes. TMDA analyzes monitors and reports deadlocks it finds, along with thread-state counts and lock details — it is a genuinely capable tool, not a toy. The difference is the workflow around the finding: TMDA is a local desktop app you drive by hand, while ThreadMine runs a set of detectors automatically and returns ranked findings with evidence, a health score, and AI hypotheses — in the browser, with nothing to install.
Does ThreadMine read IBM/OpenJ9 javacore files?
Yes. ThreadMine’s parser identifies the format automatically and reads HotSpot thread dumps, IBM J9/OpenJ9 javacores, Zing and GraalVM dumps — no flag or conversion needed. Paste the javacore and the same detectors, score and timeline apply.
Is TMDA free? And ThreadMine?
TMDA is free — an as-is tool from IBM. ThreadMine is free to start: your first dump needs no sign-up, the Free plan gives you daily analyses with history, and paid plans start at US$ 9/month (Pro) when you want more volume, AI and team workspaces.
Want to see all this applied to your own dump?
Upload a dump and get a health score, detected problems and fixes in seconds. No signup for the first dump.