JavaTM Platform
Standard Ed. 6

javax.management
클래스 MBeanServerFactory

java.lang.Object 
  상위를 확장 javax.management.MBeanServerFactory


public class MBeanServerFactory
extends Object

MBean 서버 참조를 제공합니다. 이 클래스의 인스턴스는 존재하지 않습니다.

JMX 1.2 이후, 이 클래스를 사용해, 디폴트의 MBeanServer 구현을 옮겨놓을 수가 있게 되어 있습니다. 이 처리는,MBeanServerBuilder 클래스를 사용해 행해집니다. 최초로 인스턴스화 되는 MBeanServerBuilder 의 클래스는, 시스템 프로퍼티 javax.management.builder.initial 로 지정할 수 있습니다. 빈 상태(empty)의 public 생성자 을 가지는,MBeanServerBuilder 의 public 서브 클래스를 지정할 필요가 있습니다.

디폴트에서는, 프로퍼티의 값이 지정되어 있지 않은 경우,javax.management.MBeanServerBuilder 의 인스턴스가 작성됩니다. MBeanServerFactory 는, 프로퍼티의 값이 지정되고 있는 경우는,Thread.currentThread(). getContextClassLoader() 를 사용해 지정된 클래스를 로드하려고 합니다. 프로퍼티의 값으로 해서 null 가 지정되고 있는 경우는,Thread.currentThread(). getContextClassLoader() 는 아니고 Class.forName() 을 사용합니다. 계속되어,Class.newInstance() 를 사용해, 그 Class 의 초기 인스턴스를 작성합니다. 이 처리동안에 확인 끝난 예외 (ClassNotFoundException ,InstantiationException 등)가 발생했을 경우는, 이 예외를 RuntimeException 내에 보냅니다.

javax.management.builder.initial 시스템 프로퍼티은, 새로운 MBeanServer 를 작성할 필요가 있는 경우와 이 프로퍼티이 포인트 하는 클래스가 로드 되었을 경우에 확인됩니다. 클래스가 현재의 MBeanServerBuilder 의 클래스가 아닌 경우, 새로운 MBeanServerBuilder 가 작성됩니다. 그 이외의 경우, MBeanServerFactory 는, 새로운 MBeanServerBuilder 를 작성하는지, 현재의 MBeanServerBuilder 를 재사용합니다.

이 프로퍼티이 포인트 하는 클래스를 로드할 수 없는 경우, 또는 MBeanServerBuilder 의 유효한 서브 클래스에 일치하고 있지 않는 경우, 예외가 throw 됩니다. 이 경우는,javax.management.builder.initial 시스템 프로퍼티을 유효한 값에 리셋 하지 않는 한, MBeanServer 를 작성할 수 없습니다.

MBeanServerBuilder 는, 시큐리티층을 추가하는 등의 목적으로, 디폴트의 MBeanServerBuilder 구현에 의해 반환되는 MBeanServers 를 랩 할 수 있도록(듯이) 합니다.

도입된 버젼:
1.5

메소드의 개요
static MBeanServer createMBeanServer ()
          표준의 디폴트 도메인명을 가지는 MBeanServer 인터페이스를 구현하는 새로운 객체를 돌려줍니다.
static MBeanServer createMBeanServer (String  domain)
          지정의 디폴트 도메인명을 가지는 MBeanServer 인터페이스를 구현하는 새로운 객체를 돌려줍니다.
static ArrayList <MBeanServer > findMBeanServer (String  agentId)
          등록을 마친 MBeanServer 객체의 리스트를 돌려줍니다.
static ClassLoaderRepository getClassLoaderRepository (MBeanServer  server)
          지정의 MBeanServer 에 의해 사용되는 ClassLoaderRepository 를 돌려줍니다.
static MBeanServer newMBeanServer ()
          표준의 디폴트 도메인명을 가지는 MBeanServer 인터페이스를 구현하는 새로운 객체를 돌려줍니다.
static MBeanServer newMBeanServer (String  domain)
          지정의 디폴트 도메인명을 가지는 MBeanServer 인터페이스를 구현하는 새로운 객체를 돌려줍니다.
static void releaseMBeanServer (MBeanServer  mbeanServer)
          작성된 MBeanServer 의 내부 MBeanServerFactory 참조를 삭제합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

메소드의 상세

releaseMBeanServer

public static void releaseMBeanServer(MBeanServer  mbeanServer)
작성된 MBeanServer 의 내부 MBeanServerFactory 참조를 삭제합니다. 이것에 의해, 가비지 컬렉터에 의한 MBeanServer 객체의 삭제가 가능하게 됩니다.

파라미터:
mbeanServer - 삭제되는 MBeanServer 객체
예외:
IllegalArgumentException - 다음의 조건이 성립하는 경우: mbeanServercreateMBeanServer 메소드로 작성되어 있지 않은 경우, 또는 releaseMBeanServer 가 벌써 불려 가고 있는 경우
SecurityException - SecurityManager 이 존재해, 호출원이 액세스권으로서 MBeanServerPermission ("releaseMBeanServer") 을 가지고 있지 않은 경우

createMBeanServer

public static MBeanServer  createMBeanServer()

표준의 디폴트 도메인명을 가지는 MBeanServer 인터페이스를 구현하는 새로운 객체를 돌려줍니다. 디폴트 도메인명은, 사용자가 도메인명으로서 null 를 지정했을 때, MBean 의 ObjectName 의 도메인 부분으로서 사용됩니다.

표준의 디폴트 도메인명은,DefaultDomain 입니다.

MBeanServer 참조는 내부에서 보관 유지됩니다. 이 때문에,findMBeanServer 는, 이 MBeanServer 객체의 참조를 돌려줄 수가 있습니다.

이 메소드는 createMBeanServer(null) 와 동등합니다.

반환값:
새롭게 작성된 MBeanServer
예외:
SecurityException - SecurityManager 가 존재해, 호출원이 액세스권으로서 MBeanServerPermission ("createMBeanServer") 을 가지고 있지 않은 경우
JMRuntimeException - javax.management.builder.initial 프로퍼티은 존재하지만, 이 프로퍼티에 의해 지정된 클래스를 인수 없음의 public 생성자 으로 인스턴스화할 수 없는 경우. 또는, 인스턴스화 된 빌더가 newMBeanServerDelegate 또는 newMBeanServer 메소드로부터 null 를 돌려주는 경우
ClassCastException - javax.management.builder.initial 프로퍼티이 존재해, 인스턴스화도 가능하지만, MBeanServerBuilder 준거의 할당이 아닌 경우

createMBeanServer

public static MBeanServer  createMBeanServer(String  domain)

지정의 디폴트 도메인명을 가지는 MBeanServer 인터페이스를 구현하는 새로운 객체를 돌려줍니다. 지정의 도메인명은, 사용자가 도메인명으로서 null 를 지정했을 때, MBean 의 ObjectName 의 도메인 부분으로서 사용됩니다.

MBeanServer 참조는 내부에서 보관 유지됩니다. 이 때문에,findMBeanServer 는, 이 MBeanServer 객체의 참조를 돌려줄 수가 있습니다.

파라미터:
domain - 작성된 MBeanServer 의 디폴트 도메인명. 이 값이,MBeanServer.getDefaultDomain() 로부터 반환된다
반환값:
새롭게 작성된 MBeanServer
예외:
SecurityException - SecurityManager 가 존재해, 호출원이 액세스권으로서 MBeanServerPermission ("createMBeanServer") 을 가지고 있지 않은 경우
JMRuntimeException - javax.management.builder.initial 프로퍼티은 존재하지만, 이 프로퍼티에 의해 지정된 클래스를 인수 없음의 public 생성자 으로 인스턴스화할 수 없는 경우. 또는, 인스턴스화 된 빌더가 newMBeanServerDelegate 또는 newMBeanServer 메소드로부터 null 를 돌려주는 경우
ClassCastException - javax.management.builder.initial 프로퍼티이 존재해, 인스턴스화도 가능하지만, MBeanServerBuilder 준거의 할당이 아닌 경우

newMBeanServer

public static MBeanServer  newMBeanServer()

표준의 디폴트 도메인명을 가지는 MBeanServer 인터페이스를 구현하는 새로운 객체를 돌려줍니다. 다만, 이 새로운 객체의 내부 참조는 보관 유지되지 않습니다. 디폴트 도메인명은, 사용자가 도메인명으로서 null 를 지정했을 때, MBean 의 ObjectName 의 도메인 부분으로서 사용됩니다.

표준의 디폴트 도메인명은,DefaultDomain 입니다.

참조는 보관 유지되지 않습니다. findMBeanServer 는, 이 MBeanServer 객체의 참조를 돌려줄 수 없습니다. 그러나, 가비지 컬렉터는, 이제 참조되지 않게 된 MBeanServer 객체를 삭제할 수 있습니다.

이 메소드는 newMBeanServer(null) 와 동등합니다.

반환값:
새롭게 작성된 MBeanServer
예외:
SecurityException - SecurityManager 가 존재해, 호출원이 액세스권으로서 MBeanServerPermission ("newMBeanServer") 을 가지고 있지 않은 경우
JMRuntimeException - javax.management.builder.initial 프로퍼티은 존재하지만, 이 프로퍼티에 의해 지정된 클래스를 인수 없음의 public 생성자 으로 인스턴스화할 수 없는 경우. 또는, 인스턴스화 된 빌더가 newMBeanServerDelegate 또는 newMBeanServer 메소드로부터 null 를 돌려주는 경우
ClassCastException - javax.management.builder.initial 프로퍼티이 존재해, 인스턴스화도 가능하지만, MBeanServerBuilder 준거의 할당이 아닌 경우

newMBeanServer

public static MBeanServer  newMBeanServer(String  domain)

지정의 디폴트 도메인명을 가지는 MBeanServer 인터페이스를 구현하는 새로운 객체를 돌려줍니다. 다만, 이 새로운 객체의 내부 참조는 보관 유지되지 않습니다. 지정의 도메인명은, 사용자가 도메인명으로서 null 를 지정했을 때, MBean 의 ObjectName 의 도메인 부분으로서 사용됩니다.

참조는 보관 유지되지 않습니다. findMBeanServer 는, 이 MBeanServer 객체의 참조를 돌려줄 수 없습니다. 그러나, 가비지 컬렉터는, 이제 참조되지 않게 된 MBeanServer 객체를 삭제할 수 있습니다.

파라미터:
domain - 작성된 MBeanServer 의 디폴트 도메인명. 이 값이,MBeanServer.getDefaultDomain() 로부터 반환된다
반환값:
새롭게 작성된 MBeanServer
예외:
SecurityException - SecurityManager 가 존재해, 호출원이 액세스권으로서 MBeanServerPermission ("newMBeanServer") 을 가지고 있지 않은 경우
JMRuntimeException - javax.management.builder.initial 프로퍼티은 존재하지만, 이 프로퍼티에 의해 지정된 클래스를 인수 없음의 public 생성자 으로 인스턴스화할 수 없는 경우. 또는, 인스턴스화 된 빌더가 newMBeanServerDelegate 또는 newMBeanServer 메소드로부터 null 를 돌려주는 경우
ClassCastException - javax.management.builder.initial 프로퍼티이 존재해, 인스턴스화도 가능하지만, MBeanServerBuilder 준거의 할당이 아닌 경우

findMBeanServer

public static ArrayList <MBeanServer > findMBeanServer(String  agentId)

등록을 마친 MBeanServer 객체의 리스트를 돌려줍니다. 등록을 마친 MBeanServer 객체는,createMBeanServer 메소드에 의해 작성되어 그 후 releaseMBeanServer 로 해제되어 있지 않은 객체입니다.

파라미터:
agentId - 취득하는 MBeanServer 의 에이전트 식별자. 이 파라미터가 null 의 경우, 이 JVM 내의 등록을 마친 모든 MBeanServer 가 반환된다. 그 이외의 경우, agentId 와 동일한 ID 를 가지는 MBeanServer 만이 반환된다. MBeanServer 의 ID 는, 위양 MBean 의 MBeanServerId 속성이다
반환값:
MBeanServer 객체의 리스트
예외:
SecurityException - SecurityManager 가 존재해, 호출원이 액세스권으로서 MBeanServerPermission ("findMBeanServer") 을 가지고 있지 않은 경우

getClassLoaderRepository

public static ClassLoaderRepository  getClassLoaderRepository(MBeanServer  server)
지정의 MBeanServer 에 의해 사용되는 ClassLoaderRepository 를 돌려줍니다. 이 메소드는,server.getClassLoaderRepository() 와 동등합니다.

파라미터:
server - 검사중의 MBeanServer. JMX 1.2 이후, servernull 의 경우, 결과는 NullPointerException 가 된다. 이 동작은, null 의 사용이 추천 되지 않는다 JMX 1.1 과는 다르다
반환값:
지정의 MBeanServer 에 의해 사용되는 클래스 로더 리포지터리(repository)
예외:
SecurityException - SecurityManager 가 존재해, 호출원이 액세스권으로서 MBeanPermission ("getClassLoaderRepository") 를 가지고 있지 않은 경우
NullPointerException - server 가 null 의 경우

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