|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
参照先:
説明
インタフェースの概要 | |
---|---|
Descriptor | JMX 要素の追加メタデータ。 |
DescriptorAccess | このインタフェースは、JMX コンポーネントに関連付けられた Descriptor クラスの記述子 (MBean、MBeanInfo、MBeanAttributeInfo、MBeanNotificationInfo、MBeanOperationInfo、MBeanParameterInfo) にアクセスする目的で使用されます。 |
DescriptorRead | MBeanInfo などの管理インタフェース要素の Descriptor を読み取るためのインタフェースです。 |
DynamicMBean | Dynamic MBean (動的管理インタフェースを公開する MBean) に実装するメソッドを定義します。 |
MBeanRegistration | MBean サーバーへの登録または MBean サーバーからの登録解除の前後にさまざまなオペレーションを実行するため、MBean により実装されます。 |
MBeanServer | エージェント側で MBean を操作するためのインタフェースです。 |
MBeanServerConnection | このインタフェースは、MBean サーバー (ローカルまたはリモート) との通信方法を示します。 |
MBeanServerDelegateMBean | MBeanServerDelegate クラスのオブジェクトの管理インタフェースを定義します。 |
NotificationBroadcaster | Notification を発行する MBean が実装しているインタフェース。 |
NotificationEmitter | Notification を発行する MBean が実装しているインタフェース。 |
NotificationFilter | 通知フィルタとして機能するすべてのクラスによって実装されます。 |
NotificationListener | 通知の受信を望むオブジェクトによって実装される必要があります。 |
PersistentMBean | このクラスは、MBean によって実装されるインタフェース (持続インタフェース) です。 |
QueryExp | データベースクエリー「where clauses」内で使用可能な関係制約を表します。 |
ValueExp | 関係式の引数として渡すことができる値を表します。 |
クラスの概要 | |
---|---|
Attribute | 名前と値を関連付けることにより、MBean 属性を表現します。 |
AttributeChangeNotification | MBean によって送信される属性変更通知を定義します。 |
AttributeChangeNotificationFilter | このクラスは、属性変更通知 の NotificationFilter インタフェースを実装します。 |
AttributeList | MBean の属性の値のリストを表します。 |
AttributeValueExp | 関係制約の引数として使用される属性を表します。 |
DefaultLoaderRepository | 推奨されていません。 代わりに、 MBeanServer.getClassLoaderRepository() を使用します。 |
ImmutableDescriptor | 不変記述子 |
JMX | JMX API からの static メソッドです。 |
MBeanAttributeInfo | 管理用として公開される MBean 属性を記述します。 |
MBeanConstructorInfo | MBean によって公開されるコンストラクタを記述します。 |
MBeanFeatureInfo | MBean 記述オブジェクトに一般情報を提供します。 |
MBeanInfo | MBean によって公開された管理インタフェース (管理オペレーションに使用できる属性と操作のセット) を記述します。 |
MBeanNotificationInfo | MBeanNotificationInfo クラスは、MBean によって発行された、指定の通知 Java クラスに対する複数の異なった通知インスタンスの特性を記述します。 |
MBeanOperationInfo | MBean によって公開される管理オペレーションを記述します。 |
MBeanParameterInfo | MBean によって公開されるオペレーションの引数を記述します。 |
MBeanPermission | MBeanServer オペレーションのアクセスを制御するアクセス権です。 |
MBeanServerBuilder | このクラスは、デフォルトの MBeanServer 実装を作成するビルダーを表します。 |
MBeanServerDelegate | 管理の視点で MBean サーバーを表現します。 |
MBeanServerFactory | MBean サーバー参照を提供します。 |
MBeanServerInvocationHandler | MBean の管理インタフェース内で、MBean サーバーから MBean にメソッドを渡す InvocationHandler です。 |
MBeanServerNotification | MBean サーバーにより、MBeanServerDelegate MBean から発行される通知を表します。 |
MBeanServerPermission | MBeanServer 関連のアクションを実行するためのアクセス権。 |
MBeanTrustPermission | このアクセス権は、署名者またはコードベースの「trust」を表します。 |
Notification | Notification クラスは、MBean が発行する通知を表します。 |
NotificationBroadcasterSupport | NotificationEmitter インタフェースの実装を提供します。 |
NotificationFilterSupport | NotificationFilter インタフェースの実装を提供します。 |
ObjectInstance | MBean のオブジェクト名とクラス名を表します。 |
ObjectName | MBean のオブジェクト名、または複数の MBean 名に一致するパターンを表します。 |
Query | クエリーオブジェクト制約を構築します。 |
QueryEval | 特定の MBean サーバーのコンテキストでクエリーを実行します。 |
StandardEmitterMBean | Java インタフェースのリフレクションによって管理インタフェースを決定し、通知を発行する MBean です。 |
StandardMBean | Java インタフェースのリフレクションによって管理インタフェースを決定する MBean です。 |
StringValueExp | 関係制約の引数になる文字列を表します。 |
例外の概要 | |
---|---|
AttributeNotFoundException | 指定された属性が存在しないか、取得できません。 |
BadAttributeValueExpException | クエリーを作成するメソッドに無効な MBean 属性が渡された場合にスローされます。 |
BadBinaryOpValueExpException | クエリーを作成するメソッドに無効な式が渡された場合にスローされます。 |
BadStringOperationException | クエリーを作成するメソッドに無効な文字列オペレーションが渡された場合にスローされます。 |
InstanceAlreadyExistsException | MBean はすでにリポジトリに登録されています。 |
InstanceNotFoundException | 指定された MBean がリポジトリ内に存在しません。 |
IntrospectionException | MBean のイントロスペクションの実行時に発生した例外です。 |
InvalidApplicationException | MBean のサブクエリーの式または MBean の修飾属性の式のクラスが間違っている場合にスローされます。 |
InvalidAttributeValueException | 指定された値は、属性に対する有効な値ではありません。 |
JMException | JMX 実装からスローされる例外です。 |
JMRuntimeException | JMX 実装から返される実行時例外です。 |
ListenerNotFoundException | 指定された MBean リスナーがリポジトリ内に存在しません。 |
MalformedObjectNameException | 文字列の形式が有効な ObjectName に対応していません。 |
MBeanException | エージェント内の MBean メソッドによってスローされるユーザー定義の例外を表します。 |
MBeanRegistrationException | MBeanRegistration インタフェースの preRegister() メソッドと preDeregister() メソッドによってスローされる例外をラップします。 |
NotCompliantMBeanException | MBean サーバーに JMX 準拠の MBean でないオブジェクトを登録しようとした場合に発行される例外です。 |
OperationsException | MBean のオペレーションの実行時に、MBean サーバー内でスローされる例外を表します。 |
ReflectionException | java.lang.reflect クラスを使って MBean 上のメソッドを呼び出すとき、MBean サーバー内でスローされる例外を表します。 |
RuntimeErrorException | エージェント内で java.lang.Error が発生した場合、キャッチして、RuntimeErrorException として再スローする必要があります。 |
RuntimeMBeanException | エージェント内の MBean メソッドによってスローされる実行時例外を表します。 |
RuntimeOperationsException | MBean でオペレーションの実行時にエージェント内でスローされる実行時例外を表します。 |
ServiceNotFoundException | 要求されたサービスがサポートされていない場合に発行される例外を表します。 |
注釈型の概要 | |
---|---|
DescriptorKey | 注釈要素と Descriptor 内のフィールドとの関係を記述するメタ注釈。 |
MXBean | インタフェースに対して、MXBean インタフェースである、または MXBean インタフェースではないというマークを明示的に付けるための注釈です。 |
Java Management Extensions のコアクラスを提供します。
Java Management Extensions (JMXTM)API は、管理および監視用の標準 API です。一般に、次の用途で使用されます。
JMX API は、システムやネットワークの管理ソリューションにも使用されます。
リモート管理プログラムは、JMX API のリモートアクセス機能を利用して、実行中のアプリケーションにリモートアクセスできます。
JMX API の基本概念は「MBean」です。MBean は、リソースを表す名前付きの管理オブジェクトです。次のような管理インタフェースを持ちます。
たとえば、アプリケーションの構成を表す MBean は、複数の異なった構成項目を表す属性を持つことができます。CacheSize
属性を読み取った場合、その項目の現在の値が返されます。同属性を書き込んだ場合、項目が更新され、実行中のアプリケーションの動作が変化する可能性があります。save
などのオペレーションを実行して、現在の構成を永続的に格納することができます。ConfigurationChangedNotification
などの通知は、構成の変更のたびに送信できます。
JMX API の標準的な使用方法では、MBean は Javaオブジェクトとして実装されます。しかし、次に説明するとおり、通常これらのオブジェクトが直接参照されることはありません。
MBean 実装を単純化するため、JMX API には「Standard MBean」の概念が導入されています。StandardMBean は、JavaBeansTMのネーミングパターンとよく似たネーミングパターンを使って Java インタフェースから属性とオペレーションを推測できる MBeanです。たとえば、次のようなインタフェースがあるとします。
public interface ConfigurationMBean { public int getCacheSize(); public void setCacheSize(int size); public long getLastChangedTime(); public void save(); }
getCacheSize
メソッドと setCacheSize
メソッドは、int
型で呼び出された CacheSize
(JavaBeans の規則とは異なり、最初の文字がアルファベットの大文字)の読み取り書き込み属性を定義します。
getLastChangedTime
メソッドは、long
型で呼び出された LastChangedTime
の属性を定義します。これは、setLastChangedTime
メソッドが存在しないため、読み取り専用属性です。
save
メソッドは、オペレーションで呼び出された save
を定義します。get
、set
、または is
で始まる名前を持たないので、属性ではありません。
Standard MBean の正確なネーミングパターンの詳細については、JMX 仕様を参照してください。
この管理インタフェースで、MBean である Java オブジェクトを作成する方法は 2 通り存在します。1 つは、Javaインタフェースの名前から MBean
接尾辞を除いた名前を持つクラスに属するオブジェクトを作成する方法です。例では、オブジェクトは、ConfigurationMBean
と同じ Java パッケージの Configuration
クラスに属することになります。もう 1つの方法では、StandardMBean
クラスを使用します。
MXBean は Standard MBean の派生形です。MXBean では、複雑な型は javax.management.openmbean
パッケージで定義された標準セットの型にマッピングされます。MXBean の使用が適切な場合は、それを使用しないなら MBean インタフェースでアプリケーション固有のクラスを参照する必要がある場合です。詳細は、MXBean
の仕様を参照してください。
Dynamic MBean は、管理インタフェースを実行時に定義する MBean です。たとえば、構成 MBean は、XMLファイルの解析により、公開する属性の名前と型を決定できます。
DynamicMBean
インタフェースを実装するクラスの Java オブジェクトは Dynamic MBean になります。
Open MBean は Dynamic MBean の一種であり、その属性およびオペレーションパラメータの型と戻り値は、いくつかの事前定義済みの Java クラスを使って構築されます。Open MBean は、アプリケーション固有の型 (非 Java プログラムを含む) に必ずしもアクセスできるとはかぎらないリモート管理プログラムを使って、オペレーションを簡便化します。Open MBean は、パッケージ javax.management.openmbean
で定義されます。
Model MBean は、管理インタフェースと配下の管理対象リソースのブリッジとして機能する Dynamic MBean の一種です。管理インタフェースと管理対象リソースは、どちらも Java オブジェクトとして指定されます。複数の異なった管理インタフェースおよび管理対象リソースで、同じ Model MBean 実装を繰り返し利用できます。 また、Model MBean 実装は、持続性機能、キャッシング機能などの共通機能を提供できます。Model MBean は、パッケージ javax.management.modelmbean
で定義されます。
MBean を使用するためには、MBean サーバーに登録する必要があります。MBean サーバーは、MBeanのリポジトリです。通常、MBean サーバーを利用しなければ、MBean にはアクセスできません。コードは、MBean を直接実装する Javaオブジェクトにアクセスする代わりに、MBean の名前を指定して MBean サーバー経由で MBean にアクセスするようになりました。各MBean は、MBean サーバー内に、ObjectName
クラスによって定義された一意の名前を持ちます。
MBean サーバーは、MBeanServer
インタフェースを実装するオブジェクトです。もっとも便利な MBean サーバーは、Platform MBean Server です。これは、単一の Java 仮想マシン内で動作する異なる管理コンポーネントで共有可能な単独の MBean サーバーです。Platform MBean Server には、ManagementFactory.getPlatformMBeanServer()
メソッドでアクセスします。
アプリケーションコードでも、javax.management.MBeanServerFactoryMBeanServerFactory
クラスを使って新しい MBean サーバーを作成したり、既存の MBeanサーバーにアクセスしたりできます。
MBean は 2 通りの方法で作成できます。まず、MBean にする Java オブジェクトを構築し、registerMBean
メソッドを使って、このJava オブジェクトを MBean サーバーに登録する方法があります。もう 1 つの方法では、いずれかの createMBean
メソッドを使って、単一のオペレーションで MBeanを作成し、登録します。
registerMBean
メソッドは、ローカルでは簡単に使用できますが、リモートでは使用できません。createMBean
メソッドはリモートから使用できますが、クラスローディングの問題に注意を向けることが必要な場合もあります。
MBeanRegistration
インタフェースを実装している MBean は、MBean サーバーへの登録時または MBean サーバーからの登録解除時にアクションを実行できます。
次の例のように、ObjectName
name
と MBeanServer
mbs
を指定することにより、属性とオペレーションにアクセスできます。
int cacheSize = mbs.getAttribute(name, "CacheSize");
Attribute
newCacheSize =
new Attribute("CacheSize", new Integer(2000));
mbs.setAttribute(name, newCacheSize);
mbs.invoke(name, "save", new Object[0], new Class[0]);
MBean の管理インタフェースに対応する Java インタフェースがある場合は、次のように、MBean プロキシを利用できます。
ConfigurationMBean conf =
JMX.newMBeanProxy
(mbs, name, ConfigurationMBean.class);
int cacheSize = conf.getCacheSize();
conf.setCacheSize(2000);
conf.save();
MBean プロキシは非常に便利です。2 番目の例では、最初の例と同じ MBeanServer
オペレーションを呼び出します。
MBean サーバーで、特定のパターンに一致する名前を持つ MBean や、特定の制約を満たす属性を持つ MBeanを照会できます。名前パターンの構築には ObjectName
クラスを使用し、制約の構築には Query
クラスを使用します。その後、queryNames
メソッドと queryMBeans
メソッドによりクエリーが実行されます。
通知は、Notification
クラスまたはサブクラスのインスタンスです。Java クラスに加えて、同じクラスの通知の区別に使用する型文字列を持っています。
通知を発行する MBean は、javax.management.NotificationBroadcasterNotificationBroadcaster
または NotificationEmitter
インタフェースを実装する必要があります。通常、これらのインタフェースを実装するために、javax.management.NotificationBroadcasterSupportNotificationBroadcasterSupport
のサブクラス化か、このクラスのインスタンスの委譲が行われます。
通知は、「リスナー」を使って受信できます。リスナーは、NotificationListener
インタフェースを実装するオブジェクトです。MBeanServer.addNotificationListener(ObjectName,NotificationListener, NotificationFilter, Object)
メソッドを使って、MBeanにリスナーを追加できます。このメソッドにフィルタを適用して、必要な通知だけを選択することもできます。フィルタは、NotificationFilter
インタフェースを実装するオブジェクトです。
MBean は、同じ MBean サーバー上のその他の MBeanによって発行される通知のリスナーになることができます。この場合、MBean は、NotificationListener
を実装し、MBeanServer.addNotificationListener(ObjectName,ObjectName, NotificationFilter, Object)
メソッドを利用して通知を待機します。
MBean サーバーには、コネクタ経由でリモートアクセスできます。コネクタを使用すると、リモートの Java アプリケーションが、ローカルの Java アプリケーションと実質的に同じ方法で MBean サーバーにアクセスできます。コネクタは、javax.management.remote
パッケージに定義されています。
JMX 仕様には、アダプタの概念も定義されています。アダプタは、SNMP や HTML などの要求のプロトコルを変換して、MBean サーバーにアクセスします。このため、たとえば SNMP GET オペレーションにより、MBean サーバー上で getAttribute
が実行されます。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。