4장. Tools

차례

Naming
소개
배치
Mailer MBean
소개
설정
키워드 확장
Jython MBean
소개
설정
고유 함수들
HeartBeat MBean
소개
HeartBeatSource
HeartBeatListener
Using Heartbeat MBeans

Naming

Simone Bordet

(번역)전 준식(locus@nextel.co.kr)

고친 과정
고침 $Revision: 1.1 $$Date: 2002/04/10 14:11:51 $

소개

Naming MBean은 JDK에서 제공하는 rmiregistry 툴을 MBean으로 wrap한 것이다.

이는 같은 JVM내에서 MBean으로 rmiregistry를 시작하게 한다. 다른 MBean으로, RMI MBean(문서내의 예제 참고) 혹은 RMI 어댑터로.. MBean클래스 이름은 mx4j.tools.naming.NamingService이다.

Naming MBean의 사용은 JDK와 함께 모든 필요한 클래스들이 제공되었기 때문에 추가적인 라이브러리를 필요로 하지 않는다.

배치

Naming MBean은 JMX 에이전트에 쉽게 배치될 수 있다. 다음의 코드는 JMX 에이전트에 어떻케 배치되는지를 보여준다.

예 4.1. Naming MBean의 배치

		
MBeanServer server = MBeanServerFactory.createMBeanServer();
ObjectName naming = new ObjectName("Naming:type=registry");
server.createMBean("mx4j.tools.naming.NamingService", naming, null);
		
		

Naming MBean을 rmiregistry로 사용하려면, 먼저 시작되어있어야 한다. Naming MBean은 관리 인터페이스의 start()stop()메소드를 단순히 호출함으로서 원하는 대로 시작되고 중지될 수 있다.

예 4.2. Naming MBean의 시작과 중지

		
NamingServiceMBean mbean = (NamingServiceMBean)StandardMBeanProxy.create(NamingServiceMBean.class, server, naming);
mbean.start();
...
mbean.stop();


MBeanServer를 사용하는 방법


server.invoke(naming, "start", new Object[0], new String[0]);
...
server.invoke(naming, "stop", new Object[0], new String[0]);
		
		

rmiregistry가 실행될 port를 지정하는 것이 가능하다. 단순히 Naming MBean의 생성자에 파라미터를 전달하면 된다. 기본값은 1099 포트에서 동작한다.

예 4.3. 기본 포트값을 변경하기

		
MBeanServer server = MBeanServerFactory.createMBeanServer();
ObjectName naming = new ObjectName("Naming:type=registry");

server.createMBean("mx4j.tools.naming.NamingService", naming, null, new Object[] {new Integer(2099)}, new String[] {"int"});


or


NamingService mbean = new NamingService(3099);
server.registerMBean(mbean, naming);


MLet 파일을 통해서(적당한 코드 베이스 지정해서)


<MLET CODE="mx4j.tools.naming.NamingService"
      ARCHIVE="mx4j-tools.jar"
      CODEBASE="../lib/">
	<ARG TYPE="int" VALUE="4099">
</MLET>
		
		

rmiregistry의 포트를 실행시에 변경하는 것도 가능하다. Naming MBean을 실행하고, 잠시 중지한다. 실행되는 포트를 변경하고, 다시 시작한다. 그러면 새 포트에서 요청을 받게 될 것이다. 다음에서 이런 변경 절차를 볼 수 있다.

예 4.4. 실행시 포트를 변경하기

		
MBeanServer server = MBeanServerFactory.createMBeanServer();
ObjectName naming = new ObjectName("Naming:type=registry");
server.createMBean("mx4j.tools.naming.NamingService", naming, null);
NamingServiceMBean mbean = (NamingServiceMBean)StandardMBeanProxy.create(NamingServiceMBean.class, server, naming);

mbean.start();
...
mbean.stop();
mbean.setPort(5099);
mbean.start();