JavaTM Platform
Standard Ed. 6

パッケージ javax.management.monitor

モニタークラスを定義します。

参照先:
          説明

インタフェースの概要
CounterMonitorMBean カウンタモニター MBean のリモート管理インタフェースを公開します。
GaugeMonitorMBean ゲージモニター MBean のリモート管理インタフェースを公開します。
MonitorMBean モニター MBean のリモート管理インタフェースを公開します。
StringMonitorMBean 文字列モニター MBean のリモート管理インタフェースを公開します。
 

クラスの概要
CounterMonitor カウンタ属性の値を監視するように設計されたモニター MBean を定義します。
GaugeMonitor ゲージ属性の値を監視するように設計されたモニター MBean を定義します。
Monitor すべてのモニター MBean に共通な部分を定義します。
MonitorNotification モニター MBean によって送信される通知を定義します。
StringMonitor 文字列属性の値を監視するように設計されたモニター MBean を定義します。
 

例外の概要
MonitorSettingException モニターの実行中にモニター設定が無効になった場合に、モニターからスローされる例外です。
 

パッケージ javax.management.monitor の説明

モニタークラスを定義します。Monitor は、1 つ以上のその他の MBean に含まれる属性の値を定期的に観測する MBean です。属性が特定の条件を満たす場合、Monitor は MonitorNotification を発行します。モニター MBean が監視中の属性の値を取得するために getAttribute を周期的に呼び出す場合、呼び出し側 Monitor.start() のアクセス制御コンテキスト内でこれを実行します。

監視する値は、複合型の内部に含まれた単純な値にすることができます。たとえば、java.lang.management 内で定義された MemoryMXBean は、MemoryUsage 型の HeapMemoryUsage 属性を持ちます。MemoryUsageused プロパティーで示される used メモリーの量を監視するには、「HeapMemoryUsage.used」を監視します。この文字列が、setObservedAttribute の引数になります。

HeapMemoryUsage.used」などの ObservedAttribute を解釈するための規則は、次のようになります。文字列が A.e (この例では、A が「HeapMemoryUsage」、e が「used」) であるものとします。

最初に、属性 A の値が取得されます。これを v とします。次のようにして、v から値 x が抽出されます。

3 番目の規則について考えましょう。たとえば、属性 HeapMemoryUsageMemoryUsage である場合、「HeapMemoryUsage.used」を監視すると、MemoryUsage.getUsed() が呼び出されて監視対象の値が取得されます。

ConnectionPool.connectionStats.length」のようにObservedAttribute に、複数のピリオドが含まれる場合、上記の規則が繰り返し適用されます。ここで、v は初期状態では属性 ConnectionPool の値になります。x は、e と「connectionStats」を等価にして上記の規則を適用することで得られます。次に、v がこの x に設定されます。新しい x は、e と「length」を等価にして規則を再度適用することで得られます。

属性名は、有効な Java 識別子にすることが推奨されていますが、HeapMemoryUsage.used にすることも可能です。このため、ObservedAttributeHeapMemoryUsage.used であるとすると、監視対象の値がその名前の属性である場合と、HeapMemoryUsage という名前の属性内部の used プロパティーである場合とが考えられます。互換性を維持するため、ObservedAttribute にピリオド (.) が含まれる場合、モニターは、名前が完全な ObservedAttribute 文字列 (この例では HeapMemoryUsage.used) である属性が存在するかどうかをチェックします。具体的には、監視対象の MBean に対して getMBeanInfo を呼び出し、中に含まれる指定した名前の MBeanAttributeInfo を検索します。検索しているものが見つかった場合、それが監視対象です。監視対象の MBean が複数存在し、HeapMemoryUsage.used を保持するものと保持しないものがある場合、動作は未定義になります。このため、この場合、実装により、1 つの MBean に対してのみ getMBeanInfo が呼び出されることがあります。モニターがアクティブである間に検査結果が変更される場合にも、動作は未定義になります。

モニターの厳密な動作の詳細は、『JMX 仕様』に記載されています。次に、概要を示します。

次の 3 種類の Monitor があります。

導入されたバージョン:
1.5
関連項目:
Java SE 6 プラットフォームの JMX テクノロジに関するマニュアル、 特に 『JMX 仕様、バージョン 1.4』(pdf)

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。