1

JMX エージェントを TJWS (Tiny Java Web サーバー) にリンクする方法を理解するのに少し苦労しています。

Web サーバーには、実行時に管理インターフェース (属性と操作) を公開する動的 MBean が組み込まれています。コンポーネントのセットを TJWS の一部として特定し、それぞれに対応する MBean を作成しました。ThreadPool または HTTP セッションは、そのようなタイプのコンポーネントです。作成されると、対応する MBean はコンストラクターを介してこれらのコンポーネントへの参照を受け取ります。作成されると、対応する MBean はコンストラクターを介してこれらのコンポーネントへの参照を受け取ります。コンポーネントごとに、監視する重要な属性のセットを選択しました

これは、コンポーネント作成イベントで MBean を作成するようにサーバー コードを変更する必要があるということですか? それとも別の意味ですか?:)

誰かが私を正しい方向に向けることができれば、私は感謝します

4

1 に答える 1

0

送っていただいたリンクを拝見しました。最初の 3 ページしか読めません (お金を払わなくても)。ただし、TJWSのドキュメントでは JMX や MBean については何も言及されていないため、論文の著者が JMX フック自体を実装したに違いないと思います。

そうは言っても、概説した 3 つのモデルはそれぞれ「マネージド アプリケーション」を参照しています。つまり、アプリケーション自体が管理インターフェイスを公開するための「フック」を提供する必要があります。(以下は、説明が始まったときに論文のアクセス可能な部分が終了したため、ほとんどが教育を受けた私の推測です....)

デーモン モデル MBeanServer とその MBean は管理対象アプリケーションに対してリモートであるため、アプリケーションは、公開された管理機能をリモートで呼び出す手段を提供する必要があります。これは、RMI、REST、WebServices などです。

コンポーネント モデル デーモン モデルと同じですが、公開された関数はローカルで呼び出すことができ、リモート処理は必要ありません。

ドライバ モデル コンポーネント モデルと同じ。

正直に言うと、これが学術的な演習でない限り、既存の TJWS コンポーネントがインストルメント化され、MBean インターフェイスを実装する単純化されたコンポーネント モデルに固執します。たとえば、ThreadPools は MBean インターフェイスを実装し、MaxThreadCountActiveThreadCountなどの JMX 属性を提供します。次に、これらの MBean をローカル VM のプラットフォーム MBeanServer に登録する必要があります。(Java 1.5 以降を想定)

MBeanServer のリモーティングとフェデレーションは、リモーティングが JVM に組み込まれている (RMI、IIOP、WebServices、および REST がすべて利用可能) という点で処理され、フェデレーションはOpenDMKを使用して実装できます。

于 2012-05-03T16:59:14.747 に答える