ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

MustangのJMX



USのJavaOne 2005のGeneral Sessionでは
Java SE 6(Mustang)の強化ポイントについて
紹介がありました。互換性や安定性に注力する
方針であることが強調された上で、数多くの
フィーチャーが挙げられましたが、その中でも
地味ながら注目しているのがMustangに入るで
あろうJMX1.3です。


JMXは監視・管理APIということで地味な存在
ではあるのですが、JBOSSがアプリケーション
サーバーのマイクロカーネル構造に採用したり
Tomcatも5になってサーブレット管理に採用し
たりといったことで、トラブル時の調査用API
という観点だけでなく、通常の運用時に利用
する機能として実装したり、フレームワーク
柔軟にするための基盤技術として採用したりと
いった捉え方が今後は増えてくるのではないか
と予想しています。


JMX1.3でありがたいと思うのはDescriptorを
使った方法で統一的にMBeanのプロパティを
取得できるようになるらしいという点です。
DescriptorはModelMBeanInfoに対しては利用
できましたが、その他のMBeanについては別の
方法で取得しなければなりませんでした。特に
Platform MXBeanはそれぞれ個別のメソッドを
コールしないといけないので、取得する属性を
XMLファイルなどで統一的に管理しておきたい
という場合には実装が面倒だったのではないか
と思います。


さらにユーザー定義のMXBeanが作成できると
いうのも朗報です。Java SE 5の場合でも自作
のMXBeanをMBeanServerに登録はできるものの
ManagementFactory.newPlatfromMXBeanProxy()
を使って該当のMXBeanのインターフェースを取得
することはできませんでした。
現状でもMBeanServerInvocationHandlerなどを
使って回避することもできるようですが、JMX1.3
ではその辺りをきちんと整理してくれるのでは
ないかと予想しています。


このDescriptorと自作MXBeanの二つのフィーチャー
をうまく使えば、JVMの種々の状態からアプリ固有の
監視・管理項目までを統一的にスマートに管理可能な
設計を持ったアプリケーションが開発できるのでは
ないかと期待しています。


JavaOne Tokyoでは、より具体的な話を聴ければと
思っています。