JMX- Java Management Extensions

MBean (Managed Bean)

  • JavaBeansの一種であり、
  • 依存性の注入により作られている。
  • MBeanはJava Virtual Machine上で走るリソース(アプリケーションやJava EE技術サービス(トランザクション・モニタやJDBCドライバなど))との連絡窓口の役割を果たす
  • MBeanは、関心のある統計数値(パフォーマンス、リソース使用量、問題など)を収集すること(プル)、アプリケーションの設定値を取得または設定すること(プッシュ/プル)、および障害や状態変化などのイベントを通知すること(プッシュ)に使える

できること

稼働中のJVMのメソッドが呼べる(MBean経由で外部に公開されているものであればなんでも出来る)

  • 稼働中にログレベルを変更したり
  • やばそうだからGC呼んでみたり
  • 設定変更や動作に直結する変更でも、いちいち再起動する必要がない
  • 稼働中のJVMの内部状態が見える

JMXをリモートで接続し、管理するためには

リモートから MBeanServer に接続するために

  • Connector
    • Connector は JMX に特有のプロトコルを使用して MBeanServer と監視システムの通信を行うもの
  • Protocol Adapter
    • Protocol Adapter は JMX のプロトコルを他のプロトコルに変換して通信を行うもの
    • tomcatの管理にも使っている
  • SNMP
    • 他のプロトコルとして HTML やネットワーク機器を管理するために使用される がある

from 虎の穴 図2 JMX の構成

ほか jconsole

MBean を作る

  • StandardMBean
  • DynamicMBean
    • OpenMBean
    • ModelMBean

MBeanインターフェイスとその実装

public interface HogeFTPServerMBean {
 public String getUptime();

 public int getReadBytes();

 public int getWrittenBytes();

 public void setEchoMessage(String msg);
}

で、これをimplementsしたサーバを書いて、それが起動する際に

MBeanServer server = ManagementFactory.getPlatformMBeanServer();
server.registerMBean(this, new ObjectName("yourDomain:type=hogeFTPServer"));

などと書いておけばあら不思議、先ほどのインターフェイスを実行中に呼び出すことができます。

References

JMX分析ツール

book

results matching ""

    No results matching ""