여러 Java Platform, Enterprise Edition 애플리케이션 서버로 사용자 정의 Java 관리 클라이언트 프로그램 전개 및 관리

이 절에서는 Java EE(Java™ Platform, Enterprise Edition) 서버에 연결하는 방법과 여러 개의 벤더 서버를 관리하는 방법에 대해 설명합니다.

시작하기 전에

제품은 JSR-77(Java 스펙 요청 77)로도 알려진 Java EE 관리 스펙을 완전히 구현합니다. 그러나 Java EE 스펙과 WebSphere® Application Server 구현 사이의 일부 세부적인 차이점은 Java 관리 클라이언트 프로그램을 개발하여 여러 개의 벤더 서버를 관리하는 시기를 이해하는 데 중요합니다. 정보는 Java EE(Java Platform, Enterprise Edition) 관리 스펙 및 MBean Java API(Application Programming Interface) 문서를 참조하십시오. 이 Information Center에서 참조 > Mbean 인터페이스를 클릭하십시오.

이 태스크 정보

관리 클라이언트 프로그램이 WebSphere Application Server에 배타적으로 액세스하는 경우에는 Java API 및 WebSphere Application Server 정의 MBean을 사용하여 이를 관리할 수 있습니다. 프로그램이 WebSphere Application Server 및 기타 Java EE 서버 모두에 액세스해야 하는 경우에는 Java EE 관리 스펙에 정의된 API를 사용하십시오.

프로시저

  1. Java EE 서버에 연결하십시오.
    JNDI(Java Naming and Directory Interface)에서 관리 엔터프라이즈 Bean을 찾아서 서버에 연결하십시오. 관리 엔터프라이즈 Bean은 Application Server에서 실행되는 원격 인터페이스를 MBean 서버에 제공합니다. 관리 엔터프라이즈 Bean운 WebSphere Application Server 특정 기능을 제공하지 않는 것을 제외하고는 거의 WebSphere Application Server 관리 클라이언트처럼 작동합니다. 다음 예제에서는 관리 엔터프라이즈 Bean을 찾는 방법을 보여줍니다.
    import javax.management.j2ee.ManagementHome;
    import javax.management.j2ee.Management;
    
    Properties props = new Properties();
    
    props.setProperty(Context.PROVIDER_URL, "iiop://myhost:2809");
    Context ic = new InitialContext(props);
    Object obj = ic.lookup("ejb/mgmt/MEJB");
    ManagementHome mejbHome = (ManagementHome)
            PortableRemoteObject.narrow(obj, ManagementHome.class);
    Management mejb = mejbHome.create();
    예는 RMI(Remote Method Invocation) 커넥터의 포트 및 호스트를 전달하여 Application Server에 대한 초기 컨텍스트를 가져옵니다. RMI 포트를 명확하게 코딩해야 합니다(이 경우 2809). 찾아보기 메소드는 관리 엔터프라이즈 Bean 홈의 위치인 ejb/mgmt/MEJB 경로를 찾습니다. 그런 다음, 예는 다음 단계에서 사용할 mejb Stateless 세션 Bean을 작성합니다.
  2. 여러 개의 벤더 Application Server를 관리하십시오.

    mejb Stateless 세션 Bean을 작성한 후 이 세션 Bean을 사용하여 Application Server를 관리할 수 있습니다. Application Server의 컴포넌트는 스펙이 정의하는 MBean으로 나타납니다. 이 MBean은 모두 j2eeType 특성을 갖고 있습니다. 이 특성은 스펙이 정의하는 유형 세트 중 하나입니다. 이러한 모든 유형에는 노출되는 속성 세트가 있습니다.

    여러 개의 벤더 Application Server를 관리할 때 지침으로 다음 예를 사용하십시오. 예는 JVM(Java Virtual Machine) MBean을 사용하여 Application Server의 현재 힙 크기를 판별합니다.

    ObjectName jvmQuery = new ObjectName("*:j2eeType=JVM,*");
    Set s = mejb.queryNames(jvmQuery, null);
    ObjectName jvmMBean = (ObjectName) s.iterator().next();
    boolean hasStats = ((Boolean) mejb.getAttribute(jvmMBean,
            "statisticsProvider")).booleanValue();
    if (hasStats) {
        JVMStats stats = (JVMStats) mejb.getAttribute(jvmMBean,
                                                      "stats");
        String[] statisticNames = stats.getStatisticNames();
        if (Arrays.asList(statisticNames).contains("heapSize")) {
            System.out.println("Heap size: " + stats.getHeapSize());
        }
    }

    queryNames() 메소드는 먼저 JVM MBean을 조회합니다. getAttribute 메소드는 statisticsProvider 속성을 조회하고 이 MBean이 통계를 제공하는지 판별합니다. MBean이 통계를 제공하면, 예는 stats 속성에 액세스한 후 getHeapSize() 메소드를 호출하여 힙 크기를 가져옵니다.

결과

이 예의 강점은 모든 벤더 Application Server에서 예를 실행할 수 있다는 것입니다. 예는 MBean이 선택적으로 정의된 인터페이스(이 경우 StatisticsProvider 인터페이스)를 구현할 수 있다는 것을 보여줍니다. MBean이 StatisticsProvider 인터페이스를 구현할 경우 Application Server가 특정 통계(이 경우 힙 크기)를 지원하는지 여부를 볼 수 있습니다. 이 값이 선택사항이더라도, 스펙은 힙 크기를 정의합니다. Application Server가 힙 크기를 지원하면 JVM의 힙크기를 표시할 수 있습니다.

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



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