넷빈 6.7에서 JMX 매니저 개발 및 원격 JMX Agent 연결하기

0

Written on 오전 4:35 by 강여사(J.Y.Kang)

이번 넷빈 JMX 모듈에 있는 JMX Manager 를 개발하고 원격 JMX Manager를 연결하는 방법등에 대해 다뤄보겠습니다.

작업 환경:
넷빈즈 6.5/6.7 이상
JDK 5 나 6
JMX 플러그인 - 설치
JConsole 플러그인 - 설치
(두 플러그인의 설치 방법은 이미 전 게시물에 언급했기때문에 자세한 내용은 생략하겠습니다. 도구 - 플러그인 - 해당 2개의 모듈 설치)

매니저먼트 샘플 Anagram 프로젝트를 생성합니다.
File - new project


Samples - JMX - Anagram Game Managed with JMX 선택 - 다음
이름 그대로 (기본) 경로 적당히 - 마침

원격 관리를 위한 원격 JMX Agent 를 위해서 프로젝트 소스 포맷은 반드시 1.5 이상이어야 합니다.
프로젝트에서 오른쪽 마우스 클릭 - Properties 클릭 Sources 카테고리 선택 후 오른쪽 아래 Source/Binary Format JDK는 5 이상으로 맞춥니다.
OK
카테고리에서 Monitoring and Management 를 선택하고 오른쪽의 Enable RMI Remote Access 를 체크합니다.
원격 포트로 기본 포트인 1099를 그대로 선택합니다.
OK
"Run Main Project with Monitoring and Management 클릭
프로그램GUI가 제시되고 ,
이어 JConsole 이 표시됩니다.
이번에는 Manager Project 를 만들도록 하겠습니다.

File - new project

Java - Java Application 선택

프로젝트 이름: JMXAnagramManager
경로는 적당히
메인 프로젝트로 설정 (Set as Main Project)는 체크되고
create main class 는 해제합니다.
마침
프로젝트에서 마우스 오른쪽 클릭 - new - other
JMX - JMX Manager 선택 - 다음

클래스 이름: AnagramsManager
패키지 이름: com.toy.anagrams.manager
아래 3개모두 선택(기본)
다음
JMX Agent URL 의 Edit 버튼을 클릭하면 다음 그림과 같이 팝업창이 뜹니다.
프로토콜로 RMI JVM Agent 선택 , 호스트 localhost , 1099 , URL 기본 대로
OK

다음 JMX Agent URL 텍스트박스가 업데이트 됩니다.
인증 연결 체크 - 인증을 위한 샘플 코드 자동 생성
마침

AnagramsManager.java 파일에서 주석이 되어 있는 부분을 주석을 제거해서 풉니다.(참고)
======================================================================
public static void main(String[] args) throws Exception {

//Manager instantiation and connection to the remote agent
AnagramsManager manager = AnagramsManager.getDefault();

// SAMPLE MBEAN NAME DISCOVERY. Uncomment following code:
Set resultSet =
manager.getMBeanServerConnection().queryNames(null, null);
for(Iterator i = resultSet.iterator(); i.hasNext();) {
System.out.println("MBean name: " + i.next());
}

// Close connection
manager.close();
System.out.println("Connection closed.");
}
======================================================================
import 문제 해결을 위해 fix import
java.util.Set 과 java.util.Iterator 클래스 선택

메인 프로젝트 실행
위의 메뉴바에 run- run main project

매니저가 수행되며 원격 agent 연결, output 창에 MBean 이름 출력하고 커넥션을 닫게 됩니다.
====================================================================== init:
deps-jar:
compile:
run:
MBean name: java.lang:type=MemoryManager,name=CodeCacheManager
MBean name: java.lang:type=Compilation
MBean name: java.lang:type=MemoryPool,name=PS Perm Gen
MBean name: com.sun.management:type=HotSpotDiagnostic
MBean name: java.lang:type=Runtime
MBean name: com.toy.anagrams.mbeans:type=AnagramsStats
MBean name: java.lang:type=ClassLoading
MBean name: java.lang:type=Threading
MBean name: java.lang:type=MemoryPool,name=PS Survivor Space
MBean name: java.util.logging:type=Logging
MBean name: java.lang:type=OperatingSystem
MBean name: java.lang:type=Memory
MBean name: java.lang:type=MemoryPool,name=Code Cache
MBean name: java.lang:type=GarbageCollector,name=PS Scavenge
MBean name: java.lang:type=MemoryPool,name=PS Eden Space
MBean name: JMImplementation:type=MBeanServerDelegate
MBean name: java.lang:type=GarbageCollector,name=PS MarkSweep
MBean name: java.lang:type=MemoryPool,name=PS Old Gen
Connection closed.
BUILD SUCCESSFUL (total time: 1 second)
======================================================================
수고하셨습니다. *^^*

If you enjoyed this post Subscribe to our feed


No Comment

댓글 쓰기