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.