モジュール java.management
パッケージ javax.management

クラスJMX



  • public class JMX
    extends Object
    JMX APIからのstaticメソッドです。 このクラスのインスタンスは存在しません。
    導入されたバージョン:
    1.6
    • メソッドの詳細

      • newMBeanProxy

        public static <T> T newMBeanProxy​(MBeanServerConnection connection,
                                          ObjectName objectName,
                                          Class<T> interfaceClass)

        ローカルまたはリモートのMBean Server内にStandard MBeanのプロキシを作成します。

        MBean Server mbsObjectName nameを持つMBeanが含まれていて、MBeanの管理インタフェースがJavaインタフェースMyMBeanによって記述されている場合は、次のようにしてMBeanのプロキシを構築できます。

         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です。このオブジェクトのInvocationHandlerMBeanServerInvocationHandlerです。

        このメソッドは、newMBeanProxy(connection, objectName, interfaceClass, false)と同等です。

        型パラメータ:
        T - たとえば、 interfaceClassパラメータがMyMBean.classであれば、戻り値の型はMyMBeanになることをコンパイラに知らせる。
        パラメータ:
        connection - 送信先のMBeanサーバー。
        objectName - connection内で渡されるMBeanの名前。
        interfaceClass - MBeanがエクスポートする管理インタフェース。これも返されるプロキシにより実装される。
        戻り値:
        新しいプロキシのインスタンス。
        例外:
        IllegalArgumentException - interfaceClass準拠するMBeanインタフェースでない場合
      • newMXBeanProxy

        public static <T> T newMXBeanProxy​(MBeanServerConnection connection,
                                           ObjectName objectName,
                                           Class<T> interfaceClass)
        ローカルまたはリモートのMBean Server内にMXBeanのプロキシを作成します。

        MBean Server mbsObjectName 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です。このオブジェクトのInvocationHandlerMBeanServerInvocationHandlerです。

        このメソッドは、newMXBeanProxy(connection, objectName, interfaceClass, false)と同等です。

        型パラメータ:
        T - たとえば、 interfaceClassパラメータがMyMXBean.classであれば、戻り値の型はMyMXBeanになることをコンパイラに知らせる。
        パラメータ:
        connection - 送信先のMBeanサーバー。
        objectName - connection内で渡されるMBeanの名前。
        interfaceClass - MXBeanインタフェース。これも返されるプロキシにより実装される。
        戻り値:
        新しいプロキシのインスタンス。
        例外:
        IllegalArgumentException - interfaceClass準拠するMXBeanインタフェースでない場合
      • isMXBeanInterface

        public static boolean isMXBeanInterface​(Class<?> interfaceClass)

        インタフェースがMXBeanインタフェースかどうかをテストします。 インタフェースがpublicで、@MXBeanまたは@MXBean(true)が注釈として付加されているか、@MXBeanの注釈がなく、名前が「MXBean」で終わる場合は、MXBeanインタフェースです。

        パラメータ:
        interfaceClass - 候補のインタフェース。
        戻り値:
        interfaceClass準拠するMXBeanインタフェースである場合はtrue
        例外:
        NullPointerException - interfaceClassがnullである場合。