MQ Watcher
ActiveMQ Classicのメッセージストアを調べるオープンソースツールです。元のファイルを変更せず、メッセージ、受領確認、トランザクションをローカルで追跡できます。
実際のシステム
ActiveMQ Classicのストアスナップショットを開き、メッセージ、受領確認、購読、トランザクションを調べます。MQ Watcherは各レコードをジャーナルファイルとバイト位置に結び付け、運営者が元の根拠を確認できるようにします。
できること
KahaDBジャーナルの構造(バッチ、レコードヘッダー、コマンドの包み、チェックサム)を解析し、関連する根拠をつなぎます。複数ストアをタブで開き、2つのスナップショットA/Bを比較し、完全一致のJMSMessageIDを全ストアの根拠から追跡できます。障害メモを保存し、ジャーナルの保持状況を確認し、機密情報を除いた根拠一式を出力できます。
運用方式
ストアを書き込み用に開かず、製品JARを読み込まず、復旧や圧縮も開始せずに読み取ります。誤ったランタイムや復旧経路でブローカーストアを開くと変わりうる調査対象の根拠を保全します。CLIは127.0.0.1にのみバインドし、アップロード用エンドポイントはありません。
根拠の流れ
Workerが内容ベースのSHA-256署名からストアの識別情報を算出するため、ディレクトリ名が変わっても識別を維持し、スナップショット間で意味のある比較ができます。各固定データテストでは、走査の前後にすべての元ファイルをハッシュ化し、1バイトでも変化すると失敗を報告します。不明な構造は推測せず、Unknown / Unsupported / Partialの表示を保ちます。
検証した範囲
バージョン0.4.0をGitHubで公開しています。完全一致のJMSMessageID追跡に対応しています。互換性表には検証したActiveMQのバージョンと条件を記載しているので、異なるストア形式で使う前に確認してください。
対応範囲の限界
MQ Watcherは、ストアの根拠から分かることを示します。手掛かりごとに抽出理由と根拠の限界を説明し、原因分析と復旧は別の作業として扱います。

