MBeanServer
MBeanServer (MBean 서버 인터페이스)
에이전트 측에서 MBean을 조작하기 위한 인터페이스예요. MBean의 생성, 등록, 삭제에 필요한 메서드와 등록된 MBean에 접근하는 메서드를 포함하며, JMX 인프라의 핵심 구성 요소예요.
본문
MBeanServer 인터페이스는 보통 사용자 코드가 직접 구현하지 않아요. 대신 MBeanServerFactory 클래스의 메서드 중 하나로 이 인터페이스를 구현하는 객체를 얻어요.
MBean 서버에 추가된 모든 MBean은 관리 가능해져요. 즉 그 속성과 연산이 해당 MBean 서버에 연결된 커넥터/어댑터를 통해 원격으로 접근 가능해져요. JMX 호환이 되는 MBean이 아니라면 MBean 서버에 등록할 수 없어요.
MBean이 MBean 서버에 등록되거나 등록 해제될 때 MBeanServerNotification 알림이 발행돼요. 이 알림을 받으려면 MBeanServerDelegate의 ObjectName(JMImplementation:type=MBeanServerDelegate)으로 리스너를 등록해야 해요.
MBeanServerFactory의 createMBeanServer나 newMBeanServer로 얻은 객체는 보안 검사를 수행해요. 보안 관리자가 있다면 각 연산에 대해 호출자의 권한이 해당 MBeanPermission을 함의해야 해요. 예를 들어 getAttribute 연산은 MBeanPermission(className, attribute, name, "getAttribute") 권한을 요구해요.
주요 메서드로는 createMBean(MBean 인스턴스화 및 등록), registerMBean, unregisterMBean, getAttribute/setAttribute, invoke, getMBeanInfo, queryMBeans, getObjectInstance, addNotificationListener 등이 있어요.