How to monitor a Java program using Jconsole?

╄→尐↘猪︶ㄣ 提交于 2019-12-18 19:08:12

问题


I have written a program to print number from 1 to 200 using 2 threads.

Now I want to monitor this program using JConsole.

Basically I want to learn how to use JConsole for monitoring an application.

I searched google but couldn't find something useful.

How I can achieve this?

When I started jconsole.exe in bin folder. It asks for hostname and port number. Here in my case, there is none, I guess. Can somebody guide.


回答1:


You need to enable JMX by adding the following JVM arguments :

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=8484
-Dcom.sun.management.jmxremote.ssl=false

These parameters will allow any JMX monitoring tool to access and monitoring your application.

Also i suggest you to use visualVM its more powerful tool. some features for visualVM:

  • Provide a CPU profiling.
  • Provide all info about Threads.
  • Provide the JVM Heap and the memory states.
  • Provide Info about the GC activities.



回答2:


Let's say you have a class Test under package p1 where you have the code to print numbers from 1 to 200 using 2 threads(which you want to monitor).

So to use jconsole for monitoring your application, you would need to compile and execute your code first and while your code is executing...

  • Start -> Run -> jconsole.exe and hit/press Enter

  • Select the application which you want to monitor and then click Connect.

Alternatively,you can use VisualVM for this purpose as well.




回答3:


JConsole find all the running application at the time of JConsole start-up. Then only the currently running applications port and host will be displayed in the list. So first you need to start the application then start the JConsole.



来源:https://stackoverflow.com/questions/22280229/how-to-monitor-a-java-program-using-jconsole

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!