MQ Watcher
An open-source tool for inspecting ActiveMQ Classic message store files. Trace messages, acknowledgements, and transactions locally without modifying the source files.

The working system
Open an ActiveMQ Classic store snapshot and inspect messages, acknowledgements, subscriptions, and transactions. MQ Watcher connects each record to its journal file and byte position so an operator can check the underlying evidence.



What it does
It parses KahaDB journal framing (batches, record headers, command envelopes, and checksums) and links related evidence. You can open multiple stores in tabs, compare two snapshots A/B, trace one exact JMSMessageID across all store evidence, keep incident notes, review journal retention, and export a redacted evidence bundle.
Why read-only matters
The tool reads stores without opening them for writing, loading product JARs, or starting recovery or compaction. This preserves the evidence under investigation, which can change when a broker store is opened with the wrong runtime or recovery path. The CLI binds to 127.0.0.1 only and has no upload endpoint.
Evidence flow
A Worker computes store identity from a content-based SHA-256 signature, so it survives directory renames and supports meaningful cross-snapshot comparison. Every fixture test hashes all source files before and after scanning and reports a failure if any byte changes. Unrecognized layouts keep the labels Unknown / Unsupported / Partial instead of being inferred.
Verified scope
Version 0.4.0 is available on GitHub and includes exact JMSMessageID tracing. The compatibility matrix documents tested ActiveMQ versions and scenarios; check it before using the tool on a different store format.
Where it stops
MQ Watcher shows what the store evidence supports. Each lead explains why it surfaced and where the evidence stops; root-cause analysis and recovery remain separate work.