JavaTM Platform
Standard Ed. 6

패키지 java.lang.management

Java 가상 머신의 관리 및 Java 가상 머신이 실행되고 있는 operating system의 관리를 감시하는 관리 인터페이스를 제공합니다.

참조처:
          설명

인터페이스의 개요
ClassLoadingMXBean Java 가상 머신의 클래스 로딩 시스템의 관리 인터페이스입니다.
CompilationMXBean Java 가상 머신의 컴파일 시스템의 관리 인터페이스입니다.
GarbageCollectorMXBean Java 가상 머신의 가베지 컬렉션의 관리 인터페이스입니다.
MemoryManagerMXBean 메모리 매니저의 관리 인터페이스.
MemoryMXBean Java 가상 머신의 메모리 시스템의 관리 인터페이스입니다.
MemoryPoolMXBean 메모리 풀의 관리 인터페이스입니다.
OperatingSystemMXBean Java 가상 머신을 실행하고 있는 operating system의 관리 인터페이스를 돌려줍니다.
RuntimeMXBean Java 가상 머신의 실행시 시스템의 관리 인터페이스입니다.
ThreadMXBean Java 가상 머신의 thread 시스템의 관리 인터페이스입니다.
 

클래스의 개요
LockInfo 락에 관한 정보.
ManagementFactory ManagementFactory 클래스는, Java 플랫폼의 관리 대상 Bean 를 취득하기 위한 팩토리 클래스입니다.
ManagementPermission SecurityManager 에 의해 실행되는 코드가 Java 플랫폼의 관리 인터페이스로 정의된 메소드를 호출할 때, SecurityManager 가 체크하는 액세스권입니다.
MemoryNotificationInfo 메모리 통지에 관한 정보입니다.
MemoryUsage MemoryUsage 객체는, 메모리 사용량의 snapshot를 나타냅니다.
MonitorInfo 객체의 모니터 락에 관한 정보입니다.
ThreadInfo thread 정보입니다.
 

열거형의 개요
MemoryType memory pools 의 형태입니다.
 

패키지 java.lang.management 의 설명

Java 가상 머신의 관리 및 Java 가상 머신이 실행되고 있는 operating system의 관리를 감시하는 관리 인터페이스를 제공합니다. 이 관리 인터페이스를 사용하면(자), 실행하고 있는 Java 가상 머신을 로컬 및 원격에 감시 및 관리할 수 있습니다.

플랫폼 MXBean

이 패키지는, 이하의 컴퍼넌트의 관리 인터페이스를 정의합니다.

관리 인터페이스

설명

ClassLoadingMXBean Java 가상 머신의 클래스 로딩 시스템
CompilationMXBean Java 가상 머신의 컴파일 시스템
MemoryMXBean Java 가상 머신의 메모리 시스템
ThreadMXBean Java 가상 머신의 thread 시스템
RuntimeMXBean Java 가상 머신의 실행시 시스템
OperatingSystemMXBean Java 가상 머신을 실행하고 있는 operating system
GarbageCollectorMXBean Java 가상 머신의 가비지 컬렉터
MemoryManagerMXBean Java 가상 머신의 메모리 매니저
MemoryPoolMXBean Java 가상 머신의 메모리 풀

플랫폼 MXBean 는, 그 플랫폼의 단일의 컴퍼넌트를 위한 관리 인터페이스를 정의하는 「관리 빈」이며,ManagementFactory 클래스에서 지정됩니다.

어플리케이션은 Java 가상 머신의 Instrumentation을 감시해, 다음의 방법으로 특정의 특성을 관리할 수 있습니다.

이하에서는, 다양한 방법으로 MXBean 에 액세스 하는 몇개의를 나타냅니다.

ManagementFactory

ManagementFactory 클래스는, Java 플랫폼의 관리 팩토리 클래스입니다. 이 클래스는, Java 플랫폼의 MXBean 를 취득하는 일련의 static 팩토리 메소드를 제공해, 어플리케이션으로 MXBean 에 직접 액세스 할 수 있도록(듯이) 합니다.

platform MBeanServergetPlatformMBeanServer 메소드로 액세스 할 수 있습니다. 이 메소드의 1 번째의 호출로, 플랫폼 MBeanServer 를 작성해, @link java.util.logging.LoggingMXBean} 등 그 외의 패키지에 정의되고 있는 플랫폼 MXBean 를 포함한, 모든 플랫폼 MXBean 를 등록합니다. {각 플랫폼 MXBean 는,ObjectName 를 구축하기 위해서 ManagementFactory 클래스에서 정의되고 있는 일의의 이름으로 등록됩니다. 이것은 단일의 MBeanServer 이며, 같은 Java 가상 머신내에서 실행되고 있는 다양한 관리 대상 컴퍼넌트에 의해 공유되는 일이 있습니다.

상호 운용성

실행중의 가상 머신의 관리 어플리케이션과 플랫폼 MBeanServer 는, 플랫폼 MXBean 인터페이스로 사용되는 클래스를 필요로 하는 일 없이 상호 운용할 수 있습니다. JMX 연결기 서버와 연결기 클라이언트의 사이에 전송 되는 데이터형은, JMX open types 이며, 이것에 의해 버젼간의 상호 운용이 가능합니다.

MXBean 인터페이스로 사용되는 데이터형은, MBeanServer 인터페이스에 의한 액세스시에, 공개형에 맵 됩니다. 데이터형의 매핑은,ManagementFactory 클래스에서 지정됩니다.

MXBean 에 액세스 하는 방법

관리 인터페이스에 액세스 하려면 , 이하의 3 통과해 방법이 있습니다.

  1. 같은 Java 가상 머신내에서 MXBean 의 메소드를 직접 호출한다
       RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean();
    
       // Get the standard attribute "VmVendor"
       String vendor = mxbean.getVmVendor();
    
    
  2. 실행중의 가상 머신의 플랫폼 MBeanServer 에 접속하고 있는 MBeanServerConnection 를 개입시킨다
  3.    MBeanServerConnection mbs;
    
       // Connect to a running JVM (or itself) and get MBeanServerConnection
       // that has the JVM MXBeans registered in it
       ...
    
       try {
           // Assuming the RuntimeMXBean has been registered in mbs
           ObjectName oname = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
        
           // Get standard attribute "VmVendor"
           String vendor = (String) mbs.getAttribute(oname, "VmVendor");
       } catch (....) {
           // Catch the exceptions thrown by ObjectName constructor
           // and MBeanServer.getAttribute method
           ...
       }
    
    
  4. MXBean 프록시를 사용한다
  5.    MBeanServerConnection mbs;
    
       // Connect to a running JVM (or itself) and get MBeanServerConnection
       // that has the JVM MBeans registered in it
       ...
    
       // Get a MBean proxy for RuntimeMXBean interface
       RuntimeMXBean proxy = 
           ManagementFactory.newPlatformMXBeanProxy(mbs,
                                                    ManagementFactory.RUNTIME_MXBEAN_NAME,
                                                    RuntimeMXBean.class);
       // Get standard attribute "VmVendor" 
       String vendor = proxy.getVmVendor();
    

플랫폼의 확장

Java 가상 머신의 구현에서는, 표준의 관리 인터페이스를 확장해 플랫폼 고유의 메트릭스와 관리 조작을 추가하는 플랫폼 의존의 인터페이스를 정의하는 것으로, 관리 인터페이스에 플랫폼의 확장을 추가할 수 있습니다. ManagementFactory 클래스의 static 팩토리 메소드는, 플랫폼 확장으로 MBean 를 돌려줍니다.

벤더의 이름 등 벤더 고유의 접두사를 사용해 플랫폼 고유의 속성에 이름을 붙여, 표준 관리 인터페이스의 장래의 확장과 이 플랫폼 확장동안에서 속성의 이름의 충돌이 발생하지 않게 하는 것을 추천합니다. 표준 관리 인터페이스에 대한 장래의 확장이, 관리 인터페이스의 새로운 속성을 정의해, 속성명이 벤더 고유의 속성의 이름과 같은 것을 알 수 있었을 경우, 바죠닝과 호환성의 문제에 대처하기 위해서, 벤더 고유의 속성에 액세스 하고 있는 어플리케이션을 변경할 필요가 있습니다.

이하의 예에서는, Sun 의 RuntimeMXBean 의 구현으로부터 플랫폼 고유의 속성에 액세스 하는 방법을 나타내고 있습니다.

1) Sun 고유의 MXBean 인터페이스에의 직접 액세스

   com.sun.management.RuntimeMXBean mxbean = 
       (com.sun.management.RuntimeMXBean) ManagementFactory.getRuntimeMXBean();

   // Get the standard attribute "VmVendor"
   String vendor = mxbean.getVmVendor();

   // Get the platform-specific attribute "Bar"
   BarType bar = mxbean.getBar();

2) Sun 고유의 MXBean 인터페이스에의 MBeanServer 를 개입시킨 액세스

   MBeanServerConnection mbs;

   // Connect to a running JVM (or itself) and get MBeanServerConnection
   // that has the JVM MXBeans registered in it
   ...

   try {
       // Assuming the RuntimeMXBean has been registered in mbs
       ObjectName oname = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
    
       // Get standard attribute "VmVendor" 
       String vendor = (String) mbs.getAttribute(oname, "VmVendor");

       // Check if this MXBean contains Sun's extension
       if (mbs.isInstanceOf(oname, "com.sun.management.RuntimeMXBean")) {
           // Get platform-specific attribute "Bar"
           BarType bar = (String) mbs.getAttribute(oname, "Bar");
       }
   } catch (....) {
       // Catch the exceptions thrown by ObjectName constructor
       // and MBeanServer methods
       ...
   }

별도 지정된 사항이 없는 경우,null 인수를 생성자 , 또는 이 패키지의 임의의 클래스 또는 인터페이스의 메소드에 건네주면(자) NullPointerException 가 throw 됩니다.

java.lang.management API 는 thread 세이프입니다.

도입된 버젼:
1.5
관련 항목:
JMX Specification.

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.