1:操作するプログラムが対象プロセス自身の場合
2:ローカルで動作しているプロセスでプロセスIDをつかってJMX接続する。
3:リモートで動作しているプロセスでJMXアドレスをつかって接続する。(IDやパスワードがあってもOK)
の3つでしょうか。
今回は1の場合について書いてみます。
1の場合はManagementFactoryからデータを引き出すことができます。
// MBeanServerConnectionを取得
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName objectName = new ObjectName("java.lang:type=Memory");
MemoryMXBean proxy =
JMX.newMXBeanProxy(mBeanServer, objectName, MemoryMXBean.class);
System.out.println(proxy.getHeapMemoryUsage());
結果は
init = 0(0K) used = 21876328(21363K) committed = 85000192(83008K) max = 129957888(126912K)
前回の記事で書いた
「・java.langに設定されているManagementFactoryから取得できるメモリー状態、CPU状態等のシステムBean」
このデータに関してはよけいなことしなくても簡単に引き出せます。
MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();
System.out.println(mbean.getHeapMemoryUsage());
結果は同じく
init = 0(0K) used = 21876328(21363K) committed = 85000192(83008K) max = 129957888(126912K)
とこんな感じです。
0 件のコメント:
コメントを投稿