JMX はこの問題を解決するメカニズムにはなり得ますが、完全な解決策ではありません。
JMX は、クライアントが監視データにアクセスできるようにする機能とサービスをプログラムに提供し、クライアントがアプリケーションへの制御呼び出しを行えるようにします。
おっしゃったように、JMX の 1 つの側面は通知システムです。このシステムが提供するのは、プログラムがアラートと通知をクライアントが利用できるようにするためのインフラストラクチャです。最新の JVM は、クライアントがアプリケーションにリモートで接続してそれらのイベントをサブスクライブできるようにする無料の JMX サーバーも提供します。
しかし、JMX アラートを作成することと、それに対処することはまったく別のことです。
あなたがする必要があるのは、どこかのJMXクライアントをプログラムのJMX通知に「サブスクライブ」させ、そのクライアントが電子メールなどを送信することでそれらの通知に対応できるようにすることです。
JMX クライアントは、TCP 経由でアプリケーションと通信するリモート クライアントにすることも、たとえばスレッドで実行されるプログラム内の内部 JMX クライアントにすることもでき、通知に基づいて動作することができます。
したがって、基本的に、JMX はやりたいことの配管とインフラストラクチャを提供しますが、アラートを電子メールに変換するための「最後の 1 マイル」までは必要ありません。
@fawceが述べたように、JMXデータに基づいて動作し、必要なことを実行できるさまざまな洗練された「汎用」JMXクライアントがいくつかあります(私はそれらに慣れていないため、最初に言うことはできません)、またはコーディングできますJMX データを監視する独自のシステム。