次の違いは何ですか:
- 標準 MBean
- 動的 MBean
それぞれの長所と短所は何ですか? また、リソースを管理するためにこれら 2 つのコンポーネントのいずれかをいつ選択する必要がありますか?
標準 MBean には、MBean の存続期間中に変更されない固定メタデータがあります。ダイナミック MBean は、メタデータをオンザフライで定義し、メタデータを変更して再公開できます。Java に対するこの [ひどく不自然な] アナロジーについて考えてみてください。ディレクトリ内のファイル数をリストするクラスを作成したとします。標準クラス メソッドは次のようになります。
public int getFileCount(String directoryName)
一方、このクラスの動的 MBean バージョンはメソッドなしで開始しますが、起動時に利用可能なディレクトリをスキャンし、見つかったディレクトリごとに新しいメソッドを作成します。
public int getFileCountDir1();
public int getFileCountDir2();
....
public int getFileCountDirN();
これはあまり有用な設定ではありませんが、JVM のすべてのシステム プロパティを表示する MBean を作成したいとします。ええと....システム プロパティが変更されます...そして、どのプロパティ キーが事前に定義されるかを知る合理的な方法はないため、動的 MBean が何に適しているかをより適切に表現できます。
長所と短所は次のとおりです。