Liberty: MBean 등록 예제

애플리케이션은 Liberty에서 자체 MBean 인스턴스를 등록할 수 있습니다. 이 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 인스턴스를 작성할 수 있습니다. 다음 예제에서는 mbs 변수가 MBeanServer 또는 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 문서는 ${wlp.install.dir}/dev 디렉토리의 javadoc 서브디렉토리 중 하나의 별도 .zip 파일에서 사용 가능합니다.


주제의 유형을 표시하는 아이콘 참조 주제

파일 이름: rwlp_mbeans_registration.html