jvm jcmd -命令ManagementAgent.start用于什么?

ojsjcaue  于 7个月前  发布在  其他
关注(0)|答案(3)|浏览(102)

当使用jcmd监控java进程时,有一个命令ManagementAgent.start
检查man page / oracle document / google,没有找到任何描述。

问题是:

  • 它是用来做什么的?
ttvkxqim

ttvkxqim1#

此命令启动远程JMX代理,就像设置了-Dcom.sun.management.jmxremote命令行参数一样。请参见Monitoring and Management Using JMX Technology

vngu2lb8

vngu2lb82#

**ManagementAgent.stop:**停止远程管理代理。
**ManagementAgent.start:**启动远程管理单元
**ManagementAgent.start_local:**启动本地管理代理。

你可以在下面的链接中找到一个例子。
https://self-learning-java-tutorial.blogspot.com/2018/08/jcmd-managementagentstop.html

i34xakig

i34xakig3#

jcmd的ManagementAgent命令将调用目标JVM上jdk.internal.agent.Agent类的方法:

  • start调用startRemoteManagementAgent()
  • start_local调用startLocalManagementAgent()
  • stop调用stopRemoteManagementAgent()
  • status调用getManagementAgentStatus()

基本上,前两个方法所做的是为目标JVM的平台MBean服务器启动一个JMX连接器服务器(每个连接器服务器具有不同的参数)。status命令对于获取有关正在运行的JMX代理的信息非常有用。
start_local的源代码:https://github.com/openjdk/jdk/blob/master/src/hotspot/share/services/diagnosticCommand.cpp#L736

相关问题