표준, 동적 및 개방 사용자 정의 MBean 작성 및 등록

표준, 동적 및 개방 사용자 정의 MBean을 작성하고, 제품 관리 콘솔에 등록할 수 있습니다.

시작하기 전에

이 태스크에서는 사용자가 MBean 프로그래밍의 기본 사항은 알고 있다고 가정합니다. MBean 프로그래밍에 대한 정보는 MBean Java™ API(Application Programming Interface) 문서를 참조하십시오.이 Information Center에서 참조 > Mbean 인터페이스를 클릭하십시오.

새로운 클래스를 MBean의 매개변수로 정의하지 마십시오. 클래스는 모든 프로세스에서 사용 가능하지 않을 수도 있습니다. 새 클래스를 정의해야 하는 경우에는 클래스가 배치 관리자, 노드 에이전트 및 Application Server를 포함하여 모든 프로세스에서 사용 가능한지 확인하십시오. 프로세스에서 클래스를 사용할 수 없는 경우에 여기에 액세스하려고 시도하면 새 클래스에 대한 ClassNotFoundException 예외가 발생합니다.

이 태스크 정보

다음 태스크를 수행하여 표준, 동적 또는 개방 사용자 정의 MBean을 작성한 후 등록하십시오.

프로시저

  1. 특정 MBean 클래스를 작성하십시오.
  2. MBea에 대한 MBean 설명자를 XML 언어로 쓰십시오.
  3. WebSphere® Application Server 런타임 com.ibm.websphere.management.UserMBeanCollaborator 협력자 클래스를 사용하는 코드를 애플리케이션 코드에 삽입하여 MBean을 등록하십시오.
  4. MBean 인터페이스 및 구현을 위한 클래스 파일, 설명자 XML 파일 및 애플리케이션 Java 아카이브(JAR) 파일을 패키지로 묶으십시오.

결과

단계가 완료되면 제품 관리 서비스로 활성화 및 등록되는 표준, 동적 또는 개방형 사용자 정의 MBean이 생성됩니다.

다음 예제는 관리 서비스로 표준 MBean을 작성 및 등록하는 방법을 보여줍니다.

SnoopMBean.java:

/**
 * Use the SnoopMBean MBean, which has a standard mbean interface.
 */ 
public interface SnoopMBean {
    public String getIdentification();
    public void snoopy(String parm1);
}

SnoopMBeanImpl.java:

/**
 * SnoopMBeanImpl - SnoopMBean implementation
 */ 
public class SnoopMBeanImpl implements SnoopMBean {
    public String getIdentification() {
        System.out.println(">>> getIdentification() called...");
        return "snoopy!";
    }
    
    public void snoopy(String parm1) {
        System.out.println(">>> snoopy(" + parm1 + ") called...");
    }
}

.xml 파일에서 MBean에 대한 다음 MBean 설명자를 정의하십시오. getIdentification 메소드는 단일 호출 옵션으로 실행하도록 설정되고 snoopy 메소드는 다중 호출 옵션을 사용하도록 설정됩니다. 이러한 옵션은 z/OS® 애플리케이션에만 사용됩니다. WebSphere Application Server for z/OS 옵션은 분산 플랫폼에 적용이 불가능하지만 제거할 필요는 없습니다. 옵션은 분산 플랫폼에서 무시됩니다. 일부 구문은 인쇄를 위해 여러 행으로 나눠집니다.

문제점 방지 문제점 방지: 다중 JVM 환경에서 실행 중인 경우, 입력 특성을 MBean 설명자에 포함시켜야 합니다.gotcha
SnoopMBean.xml:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
<MBean type="SnoopMBean"
 version="5.0"
 platform="dynamicproxy"
 description="Sample SnoopMBean to be initialized inside an EJB.">


 <attribute name="identification" getMethod="getIdentification" 
type="java.lang.String" proxyInvokeType="unicall"/>

 <operation name="snoopy" role="operation"  type="void" targetObjectType="objectReference" 
   impact="ACTION" proxyInvokeType="multicall">
  <signature>
   <parameter name="parm1" description="test parameter" type="java.lang.String"/>
  </signature>
 </operation>
</MBean>
MBean이 엔터프라이즈 Bean에서 사용된다고 가정해 보십시오. 엔터프라이즈 Bean ejbCreate 메소드로 MBean을 등록하고 ejbRemove 메소드로 등록을 취소하십시오.
//The method MBeanFactory.activateMBean() requires four parameters:
//String type: The type value that you put in this MBean's descriptor. For this example 
//the string type is SnoopMBean.
//RuntimeCollaborator co: The UserMBeanCollaborator user MBean collaborator instance 
//that you create
//String id: Unique name that you pick
//String descriptor: The full path to the MBean descriptor file


import com.ibm.websphere.management.UserMBeanCollaborator;
//Import other classes here.
.
.
.
static private ObjectName snoopyON = null;
static private Object lockObj = "this is a lock";
.
.
.
/**
 * ejbCreate method: Register your Mbean.
 */
public void ejbCreate() throws javax.ejb.CreateException {
    synchronized (lockObj) {
        System.out.println(">>> SnoopMBean activating for --|" + this + "|--");
        if (snoopyON != null) {
            return;
        }
        try {
            System.out.println(">>> SnoopMBean activating...");
            MBeanFactory mbfactory = AdminServiceFactory.getMBeanFactory();
            RuntimeCollaborator snoop = new UserMBeanCollaborator(new SnoopMBeanImpl());
            snoopyON = mbfactory.activateMBean("SnoopMBean", snoop, "snoopMBeanId", 
"SnoopMBean.xml");
            System.out.println(">>> SnoopMBean activation COMPLETED! --|" + snoopyON + "|--");
        } catch (Exception e) {
            System.out.println(">>> SnoopMBean activation FAILED:");
            e.printStackTrace();
        }
    }
}
.
.
.
/**
 * ejbRemove method: Unregister your MBean.
 */
public void ejbRemove() {
    synchronized (lockObj) {
        System.out.println(">>> SnoopMBean Deactivating for --|" + this + "|--");
        if (snoopyON == null) {
            return;
        }
        try {
            System.out.println(">>> SnoopMBean Deactivating ==|" + snoopyON + "|== for --|" 
+ this + "|--");
            MBeanFactory mbfactory = AdminServiceFactory.getMBeanFactory();
            mbfactory.deactivateMBean(snoopyON);
            System.out.println(">>> SnoopMBean Deactivation COMPLETED!");
        } catch (Exception e) {
            System.out.println(">>> SnoopMBean Deactivation FAILED:");
            e.printStackTrace();
        }
    }
}

다음에 수행할 작업

MBean Java 파일을 컴파일하고 이로 인한 클래스 파일을 설명자 .xml 파일과 함께 엔터프라이즈 Bean JAR 파일로 패키지하십시오.

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjmx_standard_dynamic_mbean
파일 이름:tjmx_standard_dynamic_mbean.html