6

これが私が一言で実装しようとしている仕様です:

1)一部のアラートは、アプリケーションの特定のイベントで送信する必要があります。

2)これらのアラートには、ユーザーがサブスクライブします。

3)そして、ユーザーは独自の通知設定(EメールやSMSなど)を設定しています。

これまでのところ、Javaでオープンソースソリューションを見つけることができませんでした。

JMX通知はオプションですか?JMXについて読むほど、自分の問題とは異なる何かを達成しようとしていると感じます。

どんな助けでも役に立ちます。

4

6 に答える 6

12

JMX はこの問題を解決するメカニズムにはなり得ますが、完全な解決策ではありません。

JMX は、クライアントが監視データにアクセスできるようにする機能とサービスをプログラムに提供し、クライアントがアプリケーションへの制御呼び出しを行えるようにします。

おっしゃったように、JMX の 1 つの側面は通知システムです。このシステムが提供するのは、プログラムがアラートと通知をクライアントが利用できるようにするためのインフラストラクチャです。最新の JVM は、クライアントがアプリケーションにリモートで接続してそれらのイベントをサブスクライブできるようにする無料の JMX サーバーも提供します。

しかし、JMX アラートを作成することと、それに対処することはまったく別のことです。

あなたがする必要があるのは、どこかのJMXクライアントをプログラムのJMX通知に「サブスクライブ」させ、そのクライアントが電子メールなどを送信することでそれらの通知に対応できるようにすることです。

JMX クライアントは、TCP 経由でアプリケーションと通信するリモート クライアントにすることも、たとえばスレッドで実行されるプログラム内の内部 JMX クライアントにすることもでき、通知に基づいて動作することができます。

したがって、基本的に、JMX はやりたいことの配管とインフラストラクチャを提供しますが、アラートを電子メールに変換するための「最後の 1 マイル」までは必要ありません。

@fawceが述べたように、JMXデータに基づいて動作し、必要なことを実行できるさまざまな洗練された「汎用」JMXクライアントがいくつかあります(私はそれらに慣れていないため、最初に言うことはできません)、またはコーディングできますJMX データを監視する独自のシステム。

于 2008-11-19T23:32:42.123 に答える
0

JMX を意味する場合、一般化された JMX フックを持つmonjuと呼ばれる JBoss/Nagios ブリッジがあります。

于 2008-11-19T23:08:52.793 に答える
0

あなたのシナリオをサポートするJMX通知とSNMPを使用することをお勧めします.2)と3)はSNMPソフトウェアでカバーされています。

API を使用して SMS ゲートウェイにアクセスできる限り、Java でコーディングすることもできます。匿名アクセスを許可する SMTP ホストにアクセスできる限り、javax.mail の使用は簡単です。2) の柔軟なパブリッシュ/サブスクライブ メカニズムを使用して、1) と 3) を接続できます。

于 2009-01-07T21:53:49.710 に答える
0

これは、アプリで jms を使用してアラートリンク テキストを生成するためのサンプル コードを含む優れた記事です。ローカル監視を使用したら、 -Dom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false を設定する必要があります。リモートマシンから接続できること。jmx 対応の Java を監視するためのシンプルなプログラム. また、Web ページを介してアプリをリモート コントロールすることもできます。素敵でシンプル。もちろん、jmx を使用している場合は、簡単に交換して、nagios や高価な商用ツールなどのより複雑なものを使用できます。これらのツールの重要なポイントは、多くのこと (データベース、サーバー、Java など) を管理したい大規模なチームを管理するためのワークフローと勤務表などがあることです。 jmxのJava側を機能させることで。

于 2010-09-10T06:41:43.230 に答える
-1

JMS (JMX ではなく) のことですか? JMS はメッセージング API であり、JMX は監視/管理 API です。バックエンドとして JMS を使用することは、バックエンド メッセージを実装するための良い方法です。ただし、メッセージを受信して​​ユーザーに送信するコンポーネントが必要です。

于 2008-11-19T22:51:36.463 に答える