Getting started
Quick Start
Scan a Java application for deadlocks with dixy detect in under five minutes.
You need the dixy command installed and PostgreSQL + Redis running.
Scan a jar
bash
dixy detect --jar /path/to/your-app.jarDIXY launches the jar with the agent attached and prints a snapshot once per second.
Attach to a running JVM
bash
dixy detect --pid 12345dixy detect --jar /path/to/app.jar --jsonRead the output
Each line reports the thread, lock, wait-edge and cycle counts. When a cycle appears, DIXY prints an alert followed by each edge in the cycle, then stops.
Representative output
[2026-10-30T09:14:02Z] threads=14 locks=6 waits=2 cycles=1ALERT: DEADLOCK CYCLE 1 worker-2 holds Monitor-2351897819504; worker-1 waits for it worker-1 holds Monitor-2351897820112; worker-2 waits for it| Exit code | Meaning |
|---|---|
0 | Stopped without finding a cycle. |
1 | A deadlock cycle was found. |
2 | Startup or detection failed. |
Press Ctrl+C to stop a scan cleanly.
Use the shell instead
Pass an application folder to pick a jar, start it with the agent, and open the shell:
bash
dixy /path/to/target/rootdetect