JMX(Java Management Extention)

  1. MBean(Managed Bean) 플랫폼 혹은 사용자에 의해 만들어진 모니터링용 객체.
  2. Standard MBean, Dynamic MBean, Model MBean, Open MBean 4가지 종류로 나뉨
  3. MBean Server : MBean을 등록. MBeans를 모니터링하기 원하는 원격 JMX 관리자는 MBean Server를 통하여 정보를 획득
  4. agent service : MBeans를 관리하는 (개발자가 제작한) 서비스

 

 

JMX 계층적 구성 요소

img

JMX 계층적 구성 요소에 대한 설명

 

img

JMX 계층적 구성 요소에 대한 설명 (2)

 

img

 

 

예제 따라하기

Standard MBean 예제 git URL

 

소스에 대한 설명

HelloMBean.java (interface)

  • 인터페이스 메소드는 MBean의 속성과 동작을 작성한다.
  • standard MBean은 MBean 인터페이스와 클래스로 구성된다.
  • JMX agent MBean을 관리한다.
  • 규약에 따르면 MBean 인터페이스는 suffix로 MBean으로 명명한다.
  • 관리되는 application이 값을 읽거나 변경이 가능하도록 getter, setter를 지원한다.

 

Main.java

  • Creating a JMX Agent to Manage a Resource
  • 리소스는 MBeans에 의해 측정되며 JMX agent에 의해 리소스가 관리되어 진다.
  • JMX agent의 코어는 MBean server이다. MBean server는 등록된 MBean 들이 관리되는 object server이다.
  • JMX agent 코어 말고 MBean들을 관리하기 위한 서비스들을 포함하고 있다.
  • Main은 초기화된 MBean server를 얻음으로서 시작된다.
  • 모든 JMX MBean은 object name을 가져야한다. 이 ObjectName은 JMX 사양을 따라야 한다.
  • ObjectName은 domain and a list of key-properties 을 가져야한다.

 

 

예제 소스를 실행시킨 뒤 JConsole을 실행시키면 다음과 같이 실행 시킨 예제가 JConsole에 잡히게 됩니다.

image

 

연결 후 MBeans 탭에 들어가면 예제 소스에서 만들어 등록한 MBean을 확인 할 수 있습니다.

 

image

이클립스에서 코드를 실행한 모습

image

🔼 아래는 MBeans 탭을 통해 setCacheSize 함수를 실행한 모습

MBeans탭에서 런타임중 소스의 상태를 수정(Refresh)하고 현재 상태를 확인 할 수 있습니다.

이 중 setCacheSize 함수를 실행시켜 cacheSize 값을 200 -> 150으로 값을 변경 시켜 주었습니다.

위에서 확인 할 수 있듯이 이클립스에서 함수가 실행된 모습을 볼 수 있습니다.

 

참고 자료

'규린이 IT 개발' 카테고리의 다른 글

[javascript] 페이지 새로고침  (0) 2021.11.03
[알고리즘] 비트 연산 기초  (0) 2019.06.13
[Python] 파이썬 기초  (0) 2019.06.12
[이클립스] build path  (0) 2019.06.11
[java] Reflection 예제 소스  (1) 2019.06.05

+ Recent posts