あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

jconsole

javaアプリケーションのメモリエラーに悩まされていたので
リソースチェックや監視ツールを調べていてjconsoleという監視ツールがあるのを知りました。



これは、j2SE5.0からデフォルトで付属するようになったJMX準拠の監視ツールです。
javaアプリケーションのパフォーマンス、リソース状況を監視することができます。
ローカルやリモートで動作しているjavaアプリケーションのメモリ等のリソースやパフォーマンスのチェックができます。

リモートで使ってみました。

% java -Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false -jar XXXX.jar

ポート番号の指定は、使用されていないものを指定すればOKです。
デフォルトでSSLとパスワード認証が有効になっているので無効にします。

これで、javaアプリケーションを起動してから、監視する側のPCで

$ jconsole [ip:port]

で動作するはずだったのですが、接続できませんでした。

調べてみると、Linuxで動作するjavaアプリケーションをjconsoleからリモートで監視する場合は
localhost -i で 127.0.0.1 が表示されていると jconsole は接続できないようです。
ホスト名がホストアドレスに解決されるように /etc/hosts を編集してやらないとダメでした。



参考

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
「Java SE 6完全攻略」第3回 jconsoleの機能向上 | 日経 xTECH(クロステック)
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle