注册 MBean 的示例

应用程序可在 Liberty 上注册其自己的 MBean 实例。然后,可由其他应用程序或外部管理员使用 MBean 实例。

任何应用程序都可以通过使用 MBeanServer 实例来注册 MBean。假定应用程序包含称为 org.example.Example 的类,这个类实现接口 org.example.ExampleMBean 来定义一些属性和操作。如以下示例中所示,应用程序可能只需实例化 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);
此外,应用程序还可注册 MBean 来扩展 java.lang.ClassLoader 并提供对任何数量的 MBean 实现类的访问权。然后,可以使用任何其他 JMX 客户机(本地或远程)来创建并注册应用程序所随附的 MBean。例如,假设应用程序具有可执行下列任务的 MBean 类 org.example.ApplicationClassLoader
  • 实现任何空接口 org.example.ApplicationClassLoaderMBean
  • 扩展 java.lang.Classloader,并且
  • 提供对 org.example.Example MBean 实现类的访问权
应用程序可以注册 ApplicationClassLoader 的实例,以使 Example MBean 可供其他 JMX 客户机使用,如下所示:
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 实例。以下示例假定变量 mbsMBeanServerMBeanServerConnection 实例。请参阅在 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 文档均于在线 IBM Knowledge Center 的编程接口 (API) 部分中详细说明,而且还可以在 ${wlp.install.dir}/dev 目录的某个 javadoc 子目录下的单独 .zip 文件中找到。


用于指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=rwlp_mbeans_registration
文件名:rwlp_mbeans_registration.html