public class JMX extends Object
| 修飾子と型 | フィールドと説明 |
|---|---|
static String |
DEFAULT_VALUE_FIELD
defaultValue フィールドの名前。 |
static String |
IMMUTABLE_INFO_FIELD
immutableInfo フィールドの名前。 |
static String |
INTERFACE_CLASS_NAME_FIELD
interfaceClassName フィールドの名前。 |
static String |
LEGAL_VALUES_FIELD
legalValues フィールドの名前。 |
static String |
MAX_VALUE_FIELD
maxValue フィールドの名前。 |
static String |
MIN_VALUE_FIELD
minValue フィールドの名前。 |
static String |
MXBEAN_FIELD
mxbean フィールドの名前。 |
static String |
OPEN_TYPE_FIELD
openType フィールドの名前。 |
static String |
ORIGINAL_TYPE_FIELD
originalType フィールドの名前。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
static boolean |
isMXBeanInterface(Class<?> interfaceClass)
インタフェースが MXBean インタフェースかどうかをテストします。
|
static <T> T |
newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
ローカルまたはリモートの MBean Server 内に Standard MBean のプロキシを作成します。
|
static <T> T |
newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
ローカルまたはリモートの MBean Server 内に Standard MBean 用のプロキシを作成します。これは、
NotificationEmitter のメソッドもサポートする場合があります。 |
static <T> T |
newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
ローカルまたはリモートの MBean Server 内に MXBean のプロキシを作成します。
|
static <T> T |
newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
ローカルまたはリモートの MBean Server 内に MXBean 用のプロキシを作成します。これは、
NotificationEmitter のメソッドもサポートする場合があります。 |
public static final String DEFAULT_VALUE_FIELD
defaultValue フィールドの名前。public static final String IMMUTABLE_INFO_FIELD
immutableInfo フィールドの名前。public static final String INTERFACE_CLASS_NAME_FIELD
interfaceClassName フィールドの名前。public static final String LEGAL_VALUES_FIELD
legalValues フィールドの名前。public static final String ORIGINAL_TYPE_FIELD
originalType フィールドの名前。public static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
ローカルまたはリモートの MBean Server 内に Standard MBean のプロキシを作成します。
MBean Server mbs に ObjectName name を持つ MXBean が含まれていて、MXBean の管理インタフェースが Java インタフェース MyMBean によって記述されている場合は、次のようにして MXBean のプロキシを構築できます。
MyMBean proxy = JMX.newMBeanProxy(mbs, name, MyMBean.class);
MyMBean は、次のようになります。
public interface MyMBean {
public String getSomeAttribute();
public void setSomeAttribute(String value);
public void someOperation(String param1, int param2);
}
これで、次の内容を実行できます。
proxy.getSomeAttribute()。これにより、mbs.getAttribute(name, "SomeAttribute") への呼び出しが行われます。
proxy.setSomeAttribute("whatever")。これにより、mbs.setAttribute(name, new Attribute("SomeAttribute", "whatever")) への呼び出しが行われます。
proxy.someOperation("param1", 2)。これが、mbs.invoke(name, "someOperation", <etc>) への呼び出しに変換されます。
このメソッドにより返されるオブジェクトは、Proxy です。このオブジェクトの InvocationHandler は MBeanServerInvocationHandler です。
このメソッドは、newMBeanProxy(connection, objectName, interfaceClass, false) と同等です。
T - たとえば、interfaceClass パラメータが MyMBean.class であれば、戻り値の型は MyMBean になることをコンパイラに知らせる。connection - 送信先の MBean サーバー。objectName - connection 内で渡される MBean の名前。interfaceClass - MBean がエクスポートする管理インタフェース。これも返されるプロキシにより実装される。public static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
ローカルまたはリモートの MBean Server 内に Standard MBean 用のプロキシを作成します。これは、NotificationEmitter のメソッドもサポートする場合があります。
このメソッドの動作は newMBeanProxy(MBeanServerConnection, ObjectName, Class) と同じですが、加えて notificationEmitter が true の場合、MBean は NotificationBroadcaster または NotificationEmitter であると見なされ、返されるプロキシは NotificationEmitter および interfaceClass を実装します。このプロキシ上で NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) を呼び出すと、MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) が呼び出される。NotificationBroadcaster および NotificationEmitter のその他のメソッドの場合も同様。
T - たとえば、interfaceClass パラメータが MyMBean.class であれば、戻り値の型は MyMBean になることをコンパイラに知らせる。connection - 送信先の MBean サーバー。objectName - connection 内で渡される MBean の名前。interfaceClass - MBean がエクスポートする管理インタフェース。これも返されるプロキシにより実装される。notificationEmitter - connection 経由でメソッドを渡すことにより、返されたプロキシに NotificationEmitter を実装させる。public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
ローカルまたはリモートの MBean Server 内に MXBean のプロキシを作成します。
MBean Server mbs に ObjectName name を持つ MXBean が含まれていて、MXBean の管理インタフェースが Java インタフェース MyMXBean によって記述されている場合は、次のようにして MXBean のプロキシを構築できます。
MyMXBean proxy = JMX.newMXBeanProxy(mbs, name, MyMXBean.class);
MyMXBean は、次のようになります。
public interface MyMXBean {
public String getSimpleAttribute();
public void setSimpleAttribute(String value);
public MemoryUsage getMappedAttribute();
public void setMappedAttribute(MemoryUsage memoryUsage);
public MemoryUsage someOperation(String param1, MemoryUsage param2);
}
次のようになります。
proxy.getSimpleAttribute() により、mbs.getAttribute(name, "SimpleAttribute") への呼び出しが行われます。
proxy.setSimpleAttribute("whatever") により、mbs.setAttribute(name, new Attribute("SimpleAttribute", "whatever")) への呼び出しが行われます。
String は、SimpleType の意味では Simple Typeであるため、MXBean のコンテキスト内で変更されることはありません。属性 SimpleAttribute に対する MXBean プロキシの動作は Standard MBean プロキシと同じです (newMBeanProxy を参照)。
proxy.getMappedAttribute() により、mbs.getAttribute("MappedAttribute") への呼び出しが行われます。MXBean マッピングルールに従うと、属性 MappedAttribute の実際の型は CompositeData であり、これが mbs.getAttribute の呼び出しで返されます。次に、プロキシは、MXBean マッピングルールを使って、CompositeData を予期される型 MemoryUsage に変換して戻します。
同様に、proxy.setMappedAttribute(memoryUsage) は、MemoryUsage 引数を CompositeData に変換してから mbs.setAttribute を呼び出します。
proxy.someOperation("whatever", memoryUsage) は、MemoryUsage 引数を CompositeData に変換して、mbs.invoke を呼び出します。mbs.invoke により返される値も CompositeData になります。プロキシは、MXBean マッピングルールを使って、これを予期される型 MemoryUsage に変換します。
このメソッドにより返されるオブジェクトは、Proxy です。このオブジェクトの InvocationHandler は MBeanServerInvocationHandler です。
このメソッドは、newMXBeanProxy(connection, objectName, interfaceClass, false) と同等です。
T - たとえば、interfaceClass パラメータが MyMXBean.class であれば、戻り値の型は MyMXBean になることをコンパイラに知らせる。connection - 送信先の MBean サーバー。objectName - connection 内で渡される MBean の名前。interfaceClass - MXBean インタフェース。これも返されるプロキシにより実装される。public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
ローカルまたはリモートの MBean Server 内に MXBean 用のプロキシを作成します。これは、NotificationEmitter のメソッドもサポートする場合があります。
このメソッドの動作は newMXBeanProxy(MBeanServerConnection, ObjectName, Class) と同じですが、加えて notificationEmitter が true の場合、MXBean は NotificationBroadcaster または NotificationEmitter であると見なされ、返されるプロキシは NotificationEmitter および interfaceClass を実装します。このプロキシ上で NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) を呼び出すと、MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) が呼び出される。NotificationBroadcaster および NotificationEmitter のその他のメソッドの場合も同様。
T - たとえば、interfaceClass パラメータが MyMXBean.class であれば、戻り値の型は MyMXBean になることをコンパイラに知らせる。connection - 送信先の MBean サーバー。objectName - connection 内で渡される MBean の名前。interfaceClass - MXBean インタフェース。これも返されるプロキシにより実装される。notificationEmitter - connection 経由でメソッドを渡すことにより、返されたプロキシに NotificationEmitter を実装させる。public static boolean isMXBeanInterface(Class<?> interfaceClass)
インタフェースが MXBean インタフェースかどうかをテストします。@MXBean または @MXBean(true) が注釈として付加されているか、@MXBean の注釈はないが名前が「MXBean」で終わる場合は、MXBean インタフェースです。
interfaceClass - 候補のインタフェース。interfaceClass がインタフェースであり、示された条件を満たす場合は true。NullPointerException - interfaceClass が null である場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.