jconsoleでリモート接続するために
java作成された常駐アプリが、元気に動いているかどうか確認したい場合がある。
jconsoleで接続すれば、グラフィカルにCUPやメモリの状況を確認できる。
サーバで動くアプリの場合、サーバのGUIに接続できれば、特に準備などなしにjconsoleで接続できるが、
サーバのGUIに接続できない場合、クライアントのjconsoleから接続する必要がある。
そうしたいときはjavaの常駐アプリを起動する時に引数を与えておく必要がある。
java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false test.JavaProgram
このように、test.JavaProgramを起動すると、ローカルのjconsoleからport:12345で接続できるようになる。
また、常駐アプリがtomcatの場合、setenv.shに下記の設定を追加すれば良い。
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
なお、setenv.shは$CATALINE_HOME/binに作成すれば良い。
また、$CATALINE_HOMEはtomcatを解凍したディレクトリの事(中にbinやconf,webappsが入っているディレクトリ)。
ヒープの利用状況、GC実行状況が見えたり、CPU使用率、スレッド数など、活動状況を確認できる。
また、MBeansに接続できるので、オリジナルのアプリであれば、外部インターフェースとしても利用できる。
サーバがLinuxでssh接続できるのであれば、ssh -X で接続して、サーバのXを転送する方法もある。
しかし、Xクライアントによっては、画面は見えるけどMBeanの引数を設定できなかったりする。
- EclipseLinkでJPA
- eclipseの良く使うショートカットキー
- eclipseデフォルトの文字コード
- itext5でPDFを暗号化する
- Java DateFormat
- Java8で指定回数繰り返し
- Java9でJAXB
- JavaでZip圧縮
- javaでイメージフォーマット変換
- javaでダミー画像作成
コメントを残す