在JConsole和VisualVM中查看DiagnosticCommandMBean
我已經(jīng)將JConsole用作合適的通用JMX客戶端已有很多年了。 該工具通常隨Oracle JDK一起提供,并且易于使用。 在JMX交互方面,JConsole優(yōu)于VisualVM的最大優(yōu)點(diǎn)是JConsole帶有內(nèi)置的MBeans選項(xiàng)卡,而必須為VisualVM中的相同功能應(yīng)用插件。 但是,正如我在從JConsole到VisualVM的博客文章中所解釋的那樣,該插件易于安裝。 在本文中,我將研究帶有MBeans插件的VisualVM優(yōu)于JConsole,它具有內(nèi)置的MBeans支持: DiagnosticCommandMBean 。 我正在使用Oracle JDK(Java 8)隨附的JConsole和VisualVM版本。
接下來的三個(gè)屏幕快照演示了通過JConsole訪問DiagnosticCommandMBean操作。 第一個(gè)圖像顯示有關(guān)DiagnosticCommandMBean詳細(xì)信息,例如其ObjectName ( com.sun.management:type=DiagnosticCommand )。 第二幅圖像說明JConsole允許用戶通過單擊操作的“ vmSystemProperties”按鈕來查看VM的系統(tǒng)屬性。 第三個(gè)圖像演示了無法從JConsole調(diào)用DiagnosticCommandMBean某些操作(在本例中為“ help”)。
如最后顯示的圖像所示,某些MBean操作被禁用。 這樣做的原因是,如StackOverflow所述 ,“它們僅對(duì)采用簡單類型的操作啟用。” Andreas Veithen對(duì)此進(jìn)行了詳細(xì)說明 :“ JConsole [only]允許調(diào)用僅具有簡單類型參數(shù)的方法。 這包括原始類型,原始類型的包裝器類和字符串。 帶有其他類型參數(shù)的方法無法調(diào)用,因?yàn)镴Console不知道如何構(gòu)造這些類型的實(shí)例。”
幸運(yùn)的是,VisualVM的MBeans插件確實(shí)支持針對(duì)DiagnosticCommandMBean的處理更復(fù)雜數(shù)據(jù)類型的操作。 通過VISUALVM-574 (“在MBeans插件中添加對(duì)DiagnosticCommandMBean的支持”)明確添加了此支持。 下一個(gè)屏幕快照描述了有關(guān)此插件的基本背景信息,可在VisualVM中通過單擊工具->插件->可用插件-> VisualVM-MBeans獲得。
下載并安裝VisualVM-MBeans插件后,VisualVM將對(duì)DiagnosticCommandMBean進(jìn)行所有操作,如以下三個(gè)屏幕快照所示。 第一張圖片顯示所有操作均未“灰顯”。 第二張和第三張圖片顯示“系統(tǒng)屬性”和“幫助操作”均受支持。
在上面調(diào)用“ help”的示例中,我沒有向其傳遞任何參數(shù),因此在沒有任何其他參數(shù)的情況下調(diào)用“ help”并返回給定Java進(jìn)程可用的jcmd命令選項(xiàng)列表時(shí),它的行為與jcmd完全相同。 下一個(gè)屏幕快照描述了這是如何工作類似于jcmd當(dāng)我提供這些命令的名字之一,“幫助”操作參數(shù)(獲取幫助的VM.uptime在這種情況下)。
“ JDK 8中的工具增強(qiáng)功能”頁面說明DiagnosticCommandMBean通過編程方式和遠(yuǎn)程方式使jcmd功能可用:“ JDK 8提供了對(duì)以前只能通過jcmd工具在本地訪問的診斷命令的遠(yuǎn)程訪問。 使用Java管理擴(kuò)展(JMX)提供了遠(yuǎn)程訪問,因此診斷命令將公開給注冊(cè)到平臺(tái)MBean服務(wù)器的平臺(tái)MBean。 MBean是com.sun.management.DiagnosticCommandMBean接口。” 用于JConsole / MBeans支持的VisualVM插件使用圖形VisualVM工具的行為類似于從命令行使用jcmd 。
這篇文章證明了DiagnosticCommandMBean提供對(duì)jcmd提供的相同數(shù)據(jù)的訪問,以進(jìn)行遠(yuǎn)程和編程訪問,并且VisualVM提供了有用的圖形界面,可通過VisualVM-MBeans插件利用DiagnosticCommandMBean 。
翻譯自: https://www.javacodegeeks.com/2016/03/looking-diagnosticcommandmbean-jconsole-visualvm.html
總結(jié)
以上是生活随笔為你收集整理的在JConsole和VisualVM中查看DiagnosticCommandMBean的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ddos监测(承载网ddos检测)
- 下一篇: junit rule_Tomcat上下文