MBean の登録の例

アプリケーションは、独自の MBean インスタンスを Liberty プロファイルに登録することができます。これにより、その MBean インスタンスは、他のアプリケーションまたは外部管理者が使用できます。

MBeanServer インスタンスを使用すれば、あらゆるアプリケーションで MBean を登録できます。 いくつかの属性と操作を定義したインターフェース org.example.ExampleMBean を実装する org.example.Example というクラスがアプリケーションに含まれているものとします。以下の例のように、アプリケーションは単に Example クラスをインスタンス化してから、固有の ObjectName を使用してそれを登録できます。選択した ObjectName が既に使用されている場合は、javax.management.InstanceAlreadyExistsException が報告されます。
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.example.Example;

...

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
Object mbean = new Example();
ObjectName name = new ObjectName("org.example.MyApplication:name=Example");
mbs.registerMBean(mbean, name);
また、アプリケーションは、java.lang.ClassLoader を継承し、任意の数の MBean 実装クラスにアクセスできるようにする MBean を登録することもできます。その後、任意の他の JMX クライアント (ローカルまたはリモート) を使用して、アプリケーションで提供されている MBean を作成して登録できます。例えば、以下のタスクを実行する MBean クラス org.example.ApplicationClassLoader がアプリケーションに含まれているものとします。
  • 任意の空のインターフェース org.example.ApplicationClassLoaderMBean を実装する
  • java.lang.Classloader を拡張する
  • org.example.Example MBean 実装クラスにアクセスできるようにする
以下のように、アプリケーションは ApplicationClassLoader のインスタンスを登録して、他の JMX クライアントが Example MBean を使用できるようにすることができます。
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.example.ApplicationClassLoader;

...

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
Object classLoader = new ApplicationClassLoader();
ObjectName name = new ObjectName("org.example.MyApplication:name=ClassLoader");
mbs.registerMBean(classLoader, name);
すべての JMX クライアントが Example インスタンスを作成できます。 以下の例では、変数 mbsMBeanServer または MBeanServerConnection インスタンスであるものとしています。 『Liberty プロファイルでの JMX MBean の使用』を参照してください。
import javax.management.ObjectName;

...

ObjectName loaderName = new ObjectName("org.example.MyApplication:name=ClassLoader");
ObjectName exampleName = new ObjectName("org.example.MyApplication:name=Example");
mbs.createMBean("org.example.Example”, exampleName, loaderName);

必要であれば、他の形式の MBeanServer.createMBean メソッドを使用して、非デフォルト・コンストラクターによって MBean を作成できます。

管理インターフェースについて詳しくは、Liberty プロファイルの Java API 資料を参照してください。各 Liberty プロファイル API の Java API 文書は、インフォメーション・センターの プログラミング・インターフェース (API) のセクションに詳述されていて、${wlp.install.dir}/dev ディレクトリーのいずれかの javadoc サブディレクトリー内の個別 .zip ファイル内にもあります。


トピックのタイプを示すアイコン 参照トピック

インフォメーション・センターに関するご使用条件 | フィードバック


タイム・スタンプ・アイコン 最終更新: 2015 年 6 月 17日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=rwlp_mbeans_registration
ファイル名: rwlp_mbeans_registration.html