Skip to content

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.jar

DIXY launches the jar with the agent attached and prints a snapshot once per second.

Attach to a running JVM

bash
dixy detect --pid 12345
dixy detect --jar /path/to/app.jar --json

Read 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=1
ALERT: DEADLOCK CYCLE 1
worker-2 holds Monitor-2351897819504; worker-1 waits for it
worker-1 holds Monitor-2351897820112; worker-2 waits for it
Exit codeMeaning
0Stopped without finding a cycle.
1A deadlock cycle was found.
2Startup 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/root
detect