在JConsole和VisualVM中查看DiagnosticCommandMBean

我已经将JConsole用作合适的通用JMX客户端已有很多年了。 该工具通常随Oracle JDK一起提供,并且易于使用。 在JMX交互方面,JConsole优于VisualVM的最大优点是JConsole带有内置的MBeans选项卡,而必须为VisualVM中的相同功能应用插件。 但是,正如我在从JConsole到VisualVM的博客文章中所解释的那样,该插件易于安装。 在本文中,我将研究带有MBeans插件的VisualVM优于JConsole,它具有内置的MBeans支持: DiagnosticCommandMBean 。 我正在使用Oracle JDK(Java 8)随附的JConsole和VisualVM版本。

接下来的三个屏幕快照演示了通过JConsole访问DiagnosticCommandMBean操作。 第一个图像显示有关DiagnosticCommandMBean详细信息,例如其ObjectNamecom.sun.management:type=DiagnosticCommand )。 第二幅图像说明JConsole允许用户通过单击操作的“ vmSystemProperties”按钮来查看VM的系统属性。 第三个图像演示了无法从JConsole调用DiagnosticCommandMBean某些操作(在本例中为“ help”)。

jconsoleDiagnosticCommandMBean

jconsoleDiagnosticCommandMBeanVMSystemProperties

jconsoleDiagnosticCommandMBeanHelp

如最后显示的图像所示,某些MBean操作被禁用。 这样做的原因是,如StackOverflow所述 ,“它们仅对采用简单类型的操作启用。” Andreas Veithen对此进行了详细说明 :“ JConsole [only]允许调用仅具有简单类型参数的方法。 这包括原始类型,原始类型的包装器类和字符串。 带有其他类型参数的方法无法调用,因为JConsole不知道如何构造这些类型的实例。”

幸运的是,VisualVM的MBeans插件确实支持针对DiagnosticCommandMBean的处理更复杂数据类型的操作。 通过VISUALVM-574 (“在MBeans插件中添加对DiagnosticCommandMBean的支持”)明确添加了此支持。 下一个屏幕快照描述了有关此插件的基本背景信息,可在VisualVM中通过单击工具->插件->可用插件-> VisualVM-MBeans获得。

jconsolePluginForVisualVM

下载并安装VisualVM-MBeans插件后,VisualVM将对DiagnosticCommandMBean进行所有操作,如以下三个屏幕快照所示。 第一张图片显示所有操作均未“灰显”。 第二张和第三张图片显示“系统属性”和“帮助操作”均受支持。

visualVM-MBeans-OperationsAll可用

visualVM-MBeans-DiagnosticCommand-SystemProperties

visualVM-MBeans-DiagnosticCommand-HelpSansArgument

在上面调用“ help”的示例中,我没有向其传递任何参数,因此在没有任何其他参数的情况下调用“ help”并返回给定Java进程可用的jcmd命令选项列表时,它的行为与jcmd完全相同。 下一个屏幕快照描述了这是如何工作类似于jcmd当我提供这些命令的名字之一,“帮助”操作参数(获取帮助的VM.uptime在这种情况下)。

visualVM-MBeans-DiagnosticCommand-HelpVMUptimeArgument

JDK 8中工具增强功能”页面说明DiagnosticCommandMBean通过编程方式和远程方式使jcmd功能可用:“ JDK 8提供了对以前只能通过jcmd工具在本地访问的诊断命令的远程访问。 使用Java管理扩展(JMX)提供了远程访问,因此诊断命令将公开给注册到平台MBean服务器的平台MBean。 MBean是com.sun.management.DiagnosticCommandMBean接口。” 用于JConsole / MBeans支持的VisualVM插件使用图形VisualVM工具的行为类似于从命令行使用jcmd

这篇文章证明了DiagnosticCommandMBean提供对jcmd提供的相同数据的访问,以进行远程和编程访问,并且VisualVM提供了有用的图形界面,可通过VisualVM-MBeans插件利用DiagnosticCommandMBean

翻译自: https://www.javacodegeeks.com/2016/03/looking-diagnosticcommandmbean-jconsole-visualvm.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值