JavaTM Platform
Standard Ed. 6

java.lang.management
클래스 ManagementFactory

java.lang.Object 
  상위를 확장 java.lang.management.ManagementFactory


public class ManagementFactory
extends Object

ManagementFactory 클래스는, Java 플랫폼의 관리 대상 Bean 를 취득하기 위한 팩토리 클래스입니다. 이 클래스는, Java 가상 머신의 컴퍼넌트의 관리 인터페이스를 나타내는 1 개(살) 이상의플랫폼 MXBean 를 돌려주는 static 메소드로 구성됩니다.

어플리케이션은, 다음의 방법으로 플랫폼 MXBean 에 액세스 할 수 있습니다.

플랫폼 MXBean

플랫폼 MXBean 는, JMX Instrumentation 스펙에 적합하는 「관리 빈」이며, 다음에 나타내는 기본 데이터형 세트만을 사용합니다. 자세한 것은, 「MXBeans 스펙」을 참조해 주세요. JMX 관리 어플리케이션과 플랫폼 MBeanServer 는, MXBean 고유의 데이터형을 위한 클래스를 필요로 하는 일 없이 상호 운용할 수 있습니다. JMX 연결기 서버와 연결기 클라이언트의 사이에 전송 되는 데이터형은,공개형이며, 이것에 의해 버젼간의 상호 운용이 가능합니다.

플랫폼 MXBean 인터페이스에서는, 다음의 데이터형만이 사용됩니다.

플랫폼 MXBean 의 속성 또는 오퍼레이션에의 액세스가 MBeanServer 를 개입시켜 행해지는 경우, 데이터형은 다음대로 매핑 됩니다.

플랫폼 MXBean MBeanInfo 는, 상기대로 매핑 된 원시형 또는 공개형으로서 속성 및 오퍼레이션의 데이터형을 기술합니다.

예를 들어,MemoryMXBean 인터페이스는, 다음의 getter 메소드와 setter 메소드를 가집니다.

 public MemoryUsage getHeapMemoryUsage();
 public boolean isVerbose();
 public void setVerbose(boolean value);
 
MemoryMXBeanMBeanInfo 의 속성은, 다음의 이름과 형태를 가집니다.
속성명
HeapMemoryUsage CompositeData representing MemoryUsage
Verbose boolean 형

MXBean 명

Java 가상 머신의 각 플랫폼 MXBean 는, 플랫폼 MBeanServer 에서의 등록을 위해서(때문에) 일의 ObjectName 를 가집니다. Java 가상 머신은 다음의 관리 인터페이스의 단일의 인스턴스를 가집니다.
관리 인터페이스 ObjectName
ClassLoadingMXBean java.lang:type=ClassLoading
MemoryMXBean java.lang:type=Memory
ThreadMXBean java.lang:type=Threading
RuntimeMXBean java.lang:type=Runtime
OperatingSystemMXBean java.lang:type=OperatingSystem

Java 가상 머신은, 이하의 관리 인터페이스의 인스턴스를 가지지 않는가, 단일의 인스턴스를 가집니다.

관리 인터페이스 ObjectName
CompilationMXBean java.lang:type=Compilation

Java 가상 머신은, 이하의 관리 인터페이스의 인스턴스를 1 개 이상 가질 수가 있습니다.

관리 인터페이스 ObjectName
GarbageCollectorMXBean java.lang:type=GarbageCollector , name=collector's name
MemoryManagerMXBean java.lang:type=MemoryManager , name=manager's name
MemoryPoolMXBean java.lang:type=MemoryPool , name=pool's name

도입된 버젼:
1.5
관련 항목:
JMX 스펙. , 관리 메트릭스에 액세스 하는 방법, LoggingMXBean , MXBean

필드의 개요
static String CLASS_LOADING_MXBEAN_NAME
          ClassLoadingMXBeanObjectName 의 캐릭터 라인 표현입니다.
static String COMPILATION_MXBEAN_NAME
          CompilationMXBeanObjectName 의 캐릭터 라인 표현입니다.
static String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
          도메인명과 GarbageCollectorMXBeanObjectName 의 형태 키프로파티입니다.
static String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
          도메인명과 MemoryManagerMXBeanObjectName 의 형태 키프로파티입니다.
static String MEMORY_MXBEAN_NAME
          MemoryMXBeanObjectName 의 캐릭터 라인 표현입니다.
static String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
          도메인명과 MemoryPoolMXBeanObjectName 의 형태 키프로파티입니다.
static String OPERATING_SYSTEM_MXBEAN_NAME
          OperatingSystemMXBeanObjectName 의 캐릭터 라인 표현입니다.
static String RUNTIME_MXBEAN_NAME
          RuntimeMXBeanObjectName 의 캐릭터 라인 표현입니다.
static String THREAD_MXBEAN_NAME
          ThreadMXBeanObjectName 의 캐릭터 라인 표현입니다.
 
메소드의 개요
static ClassLoadingMXBean getClassLoadingMXBean ()
          Java 가상 머신의 클래스 로딩 시스템의 관리 빈을 돌려줍니다.
static CompilationMXBean getCompilationMXBean ()
          Java 가상 머신의 컴파일 시스템의 관리 빈을 돌려줍니다.
static List <GarbageCollectorMXBean > getGarbageCollectorMXBeans ()
          Java 가상 머신 GarbageCollectorMXBean 객체의 리스트를 돌려줍니다.
static List <MemoryManagerMXBean > getMemoryManagerMXBeans ()
          Java 가상 머신 MemoryManagerMXBean 객체의 리스트를 돌려줍니다.
static MemoryMXBean getMemoryMXBean ()
          Java 가상 머신의 메모리 시스템의 관리 빈을 돌려줍니다.
static List <MemoryPoolMXBean > getMemoryPoolMXBeans ()
          Java 가상 머신 MemoryPoolMXBean 객체의 리스트를 돌려줍니다.
static OperatingSystemMXBean getOperatingSystemMXBean ()
          Java 가상 머신을 실행하고 있는 operating system의 관리 빈을 돌려줍니다.
static MBeanServer getPlatformMBeanServer ()
          플랫폼 MBeanServer 를 돌려줍니다.
static RuntimeMXBean getRuntimeMXBean ()
          Java 가상 머신의 실행 시스템의 관리 빈을 돌려줍니다.
static ThreadMXBean getThreadMXBean ()
          Java 가상 머신의 thread 시스템의 관리 빈을 돌려줍니다.
static
<T> T
newPlatformMXBeanProxy (MBeanServerConnection  connection, String  mxbeanName, Class <T> mxbeanInterface)
          지정된 MBeanServerConnection 를 개입시켜 메소드 호출을 전송 하는, 지정된 MXBean 명의 플랫폼 MXBean 인터페이스의 프록시를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

CLASS_LOADING_MXBEAN_NAME

public static final String  CLASS_LOADING_MXBEAN_NAME
ClassLoadingMXBeanObjectName 의 캐릭터 라인 표현입니다.

관련 항목:
정수 필드치

COMPILATION_MXBEAN_NAME

public static final String  COMPILATION_MXBEAN_NAME
CompilationMXBeanObjectName 의 캐릭터 라인 표현입니다.

관련 항목:
정수 필드치

MEMORY_MXBEAN_NAME

public static final String  MEMORY_MXBEAN_NAME
MemoryMXBeanObjectName 의 캐릭터 라인 표현입니다.

관련 항목:
정수 필드치

OPERATING_SYSTEM_MXBEAN_NAME

public static final String  OPERATING_SYSTEM_MXBEAN_NAME
OperatingSystemMXBeanObjectName 의 캐릭터 라인 표현입니다.

관련 항목:
정수 필드치

RUNTIME_MXBEAN_NAME

public static final String  RUNTIME_MXBEAN_NAME
RuntimeMXBeanObjectName 의 캐릭터 라인 표현입니다.

관련 항목:
정수 필드치

THREAD_MXBEAN_NAME

public static final String  THREAD_MXBEAN_NAME
ThreadMXBeanObjectName 의 캐릭터 라인 표현입니다.

관련 항목:
정수 필드치

GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE

public static final String  GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
도메인명과 GarbageCollectorMXBeanObjectName 의 형태 키프로파티입니다. GarbageCollectorMXBean 의 일의의 ObjectName 는, 이 캐릭터 라인에 「, name=수집가명」을 추가하는 것으로 작성할 수 있습니다.

관련 항목:
정수 필드치

MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE

public static final String  MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
도메인명과 MemoryManagerMXBeanObjectName 의 형태 키프로파티입니다. MemoryManagerMXBean 의 일의의 ObjectName 는, 이 캐릭터 라인에 「, name=매니저명」을 추가하는 것으로 작성할 수 있습니다.

관련 항목:
정수 필드치

MEMORY_POOL_MXBEAN_DOMAIN_TYPE

public static final String  MEMORY_POOL_MXBEAN_DOMAIN_TYPE
도메인명과 MemoryPoolMXBeanObjectName 의 형태 키프로파티입니다. MemoryPoolMXBean 의 일의의 ObjectName 는, 이 캐릭터 라인에 「, name=풀명」을 추가하는 것으로 작성할 수 있습니다.

관련 항목:
정수 필드치
메소드의 상세

getClassLoadingMXBean

public static ClassLoadingMXBean  getClassLoadingMXBean()
Java 가상 머신의 클래스 로딩 시스템의 관리 빈을 돌려줍니다.

반환값:
Java 가상 머신의 ClassLoadingMXBean 객체

getMemoryMXBean

public static MemoryMXBean  getMemoryMXBean()
Java 가상 머신의 메모리 시스템의 관리 빈을 돌려줍니다.

반환값:
Java 가상 머신 MemoryMXBean 객체

getThreadMXBean

public static ThreadMXBean  getThreadMXBean()
Java 가상 머신의 thread 시스템의 관리 빈을 돌려줍니다.

반환값:
Java 가상 머신 ThreadMXBean 객체

getRuntimeMXBean

public static RuntimeMXBean  getRuntimeMXBean()
Java 가상 머신의 실행 시스템의 관리 빈을 돌려줍니다. J

반환값:
Java 가상 머신 RuntimeMXBean 객체

getCompilationMXBean

public static CompilationMXBean  getCompilationMXBean()
Java 가상 머신의 컴파일 시스템의 관리 빈을 돌려줍니다. Java 가상 머신이 컴파일 시스템을 가지지 않는 경우, 이 메소드는 null 를 돌려줍니다.

반환값:
Java 가상 머신 CompilationMXBean 객체. Java 가상 머신이 컴파일 시스템을 가지지 않는 경우는 null

getOperatingSystemMXBean

public static OperatingSystemMXBean  getOperatingSystemMXBean()
Java 가상 머신을 실행하고 있는 operating system의 관리 빈을 돌려줍니다.

반환값:
Java 가상 머신의 OperatingSystemMXBean 객체

getMemoryPoolMXBeans

public static List <MemoryPoolMXBean > getMemoryPoolMXBeans()
Java 가상 머신 MemoryPoolMXBean 객체의 리스트를 돌려줍니다. Java 가상 머신은, 1 개(살) 이상의 메모리 풀을 보유할 수 있습니다. 실행중에 메모리 풀을 추가 또는 삭제할 수 있습니다.

반환값:
MemoryPoolMXBean 객체의 리스트

getMemoryManagerMXBeans

public static List <MemoryManagerMXBean > getMemoryManagerMXBeans()
Java 가상 머신 MemoryManagerMXBean 객체의 리스트를 돌려줍니다. Java 가상 머신은, 1 개(살) 이상의 메모리 매니저를 가질 수가 있습니다. Java 가상 머신은, 실행중에 메모리 매니저를 추가 또는 삭제할 수 있습니다.

반환값:
MemoryManagerMXBean 객체의 리스트

getGarbageCollectorMXBeans

public static List <GarbageCollectorMXBean > getGarbageCollectorMXBeans()
Java 가상 머신 GarbageCollectorMXBean 객체의 리스트를 돌려줍니다. Java 가상 머신은, 1 개(살) 이상의 GarbageCollectorMXBean 객체를 가질 수가 있습니다. 또, 실행중에 GarbageCollectorMXBean 를 추가 또는 삭제할 수 있습니다.

반환값:
GarbageCollectorMXBean 객체의 리스트

getPlatformMBeanServer

public static MBeanServer  getPlatformMBeanServer()
플랫폼 MBeanServer 를 돌려줍니다. 이 메소드의 최초의 호출로, 메소드는, 우선 MBeanServerFactory.createMBeanServer 메소드를 호출해, 플랫폼 MBeanServer 를 작성해, 클래스의 기술로 정의된 MXBean 명을 사용해, 이 플랫폼 MBeanServer 에 플랫폼 MXBean 를 등록합니다. 이후의 호출에서는, 이 메소드는, 초기에 작성된 플랫폼 MBeanServer 를 돌려줍니다.

MXBean 는 동적으로 작성되어 파기됩니다. 예를 들어, 메모리 poolsmanagers 는, 플랫폼 MBeanServer 에 자동적으로 등록 및 등록 해제됩니다.

시스템 프로퍼티 javax.management.builder.initial 가 설정되어 있으면(자), 플랫폼 MBeanServer 의 작성은, 지정된 MBeanServerBuilder 에 의해 실행됩니다.

플랫폼 MXBean 에 가세해, 다른 어플리케이션의 관리 빈의 등록에도, 이 플랫폼 MBeanServer 를 사용하는 것을 추천합니다. 이것에 의해, 모든 MBean 는 같은 MBeanServer 를 통해서 발행되어 특히 네트워크 퍼블리싱과 검출이 용이하게 됩니다. 플랫폼 MXBean 와의 이름의 중복을 피할 필요가 있습니다.

반환값:
플랫폼 MBeanServer. 플랫폼 MXBean 는, 이 메소드가 처음으로 불려 갔을 때에 플랫폼 MBeanServer 내에 등록된다
예외:
SecurityException - 시큐리티 매니저가 존재하는 경우로, 호출원이 MBeanServerFactory.createMBeanServer() 로 필요한 액세스권을 가지지 않는 경우
관련 항목:
MBeanServerFactory , MBeanServerFactory.createMBeanServer()

newPlatformMXBeanProxy

public static <T> T newPlatformMXBeanProxy(MBeanServerConnection  connection,
                                           String  mxbeanName,
                                           Class <T> mxbeanInterface)
                                throws IOException 
지정된 MBeanServerConnection 를 개입시켜 메소드 호출을 전송 하는, 지정된 MXBean 명의 플랫폼 MXBean 인터페이스의 프록시를 돌려줍니다.

이 메소드는, 다음과 동등합니다.

Proxy.newProxyInstance (mxbeanInterface.getClassLoader(), new Class[] { mxbeanInterface }, handler)
여기서,handler 는, MXBean 인터페이스에의 메소드 호출의 발송처 InvocationHandler 입니다. 이 handler 는 MXBean 데이터형의 입력 파라미터를 매핑 된 공개형으로 변환하고 나서,MBeanServer 에 전송 해,MBeanServer 를 개입시켜 MXBean 메소드 호출로부터의 반환값을 공개형으로부터 MXBean 인터페이스로 선언된 대응하는 반환값의 형태로 변환합니다.

MXBean 가 통지를 발행하는 (NotificationEmitter 를 구현한다) 경우,mxbeanInterfaceNotificationEmitter 의 양쪽 모두가 이 프록시에 의해 구현됩니다.

주:

  1. MXBean 프록시의 사용은, 실행중의 가상 머신의 플랫폼 MXBean 에의 원격 접근에 유용하다. MXBean 프록시에의 모든 메소드 호출은,MBeanServerConnection 에 전송 된다. 연결기 서버에 통신에 관한 문제가 발생하면(자),IOException 가 throw 됩니다. 프록시를 사용해 플랫폼 MXBean 에 원격 접근 하는 어플리케이션에서는,MBeanServerConnector 인터페이스를 사용해 액세스 하는 경우와 같이,IOException 를 캐치 할 준비가 필요하게 된다
  2. 클라이언트 어플리케이션이, 그것과는 다른 버젼을 실행중의 가상 머신의 MXBean 에 원격 접근 하도록(듯이) 설계되고 있는 경우, MXBean 프록시가 클라이언트 어플리케이션으로 로드 된 열거 클래스에서 발견되지 않는 열거 정수의 이름을 받았을 경우에 throw 되는 InvalidObjectException 를 캐치 할 준비를 할 필요가 있다
  3. MBeanServerInvocationHandler 또는 그 newProxyInstance 메소드를 사용해, 플랫폼 MXBean 의 프록시를 작성할 수 없다. MBeanServerInvocationHandler 에 의해 작성된 프록시 객체는,클래스 스펙으로 기술된 플랫폼 MXBean 의 프로퍼티을 처리하지 않는다

파라미터:
connection - 전송처의 MBeanServerConnection
mxbeanName - 전송처의 connection 내의 플랫폼 MXBean 명. mxbeanName 의 서식은 ObjectName 가 아니면 안되는
mxbeanInterface - 프록시에 의해 구현되는 MXBean 인터페이스
예외:
IllegalArgumentException - 다음의 조건이 성립하는 경우:
  • mxbeanName 가 유효한 ObjectName 의 서식이 아니다
  • connection 내에서 지정된 MXBean 가, 플랫폼에서 제공되는 MXBean 가 아니다
  • 지정된 MXBean 가 MBeanServerConnection 에 등록되지 않았다
  • 지정된 MXBean 가 지정된 mxbeanInterface 의 인스턴스가 아니다
IOException - MBeanServerConnection 에의 액세스시에 통신에 관한 문제가 발생했을 경우

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 도 참조해 주세요.