日本語の解説が少なすぎて切れそうですが、そんなJMXのさわりを書いてみます。
まずはプログラム
package com.ttProject.jmxtest;
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
public class CuiEntry {
private MBeanServer mbs;
public static void main(String[] args) throws Exception {
new CuiEntry();
}
public CuiEntry() throws Exception {
mbs = ManagementFactory.getPlatformMBeanServer();
mbs.registerMBean(new Test(), new ObjectName("com.ttProject.jmxtest:name=hoge"));
System.out.println("start");
while(true) {
Thread.sleep(100);
}
}
public interface TestMBean {
public String getData();
public String printData();
public void doOutput();
}
public class Test implements TestMBean {
private String data = "test";
@Override
public String getData() {
return data;
}
@Override
public String printData() {
return data;
}
@Override
public void doOutput() {
System.out.println(data);
}
}
}
別にクラスをわけてもかまわないのですが、適当な名前のクラスとその名前にMBeanをつけたInterfaceを作成、それをregisterMBeanで登録してやると、JconsoleとかでJMX経由でサーバーの状態を参照したり、特定のプログラムを実行したりできます。
自分のオリジナルのクラスが追加されました。
0 件のコメント:
コメントを投稿