我想通過將客戶端包裝到javaagent包中並在本地查詢MBean來將自定義JMX客戶端加載到JVM中。我的意圖是JMX客戶端將定期查詢主機應用程序的MBean或接收通知。但是,由於javaagent是在主jar之前加載的(通過premain),主機應用程序的MBean尚不可用。我應該如何處理這個「雞蛋之前的雞」問題?線程是否適合這個?還是有其他一些首選的JMX機制? 謝謝如何在JavaAgent中打包JMXClient
1
A
回答
1
開始一個帶有睡眠的循環,直到您成功獲取目標MBeanServer。如果這是平臺MBeanServer,您應該立即使用ManagementFactory.getPlatformMBeanServer()來獲取它。然後註冊一個notification listener,其ObjectName定義爲MBeanServerDelegate.DELEGATE_NAME。篩選類別爲MBeanServerNotification的通知,通知類型爲MBeanServerNotification.REGISTRATION_NOTIFICATION。每次在目標MBeanServer中註冊新的MBean時,您的通知偵聽器都會收到回調。
+0
非常好。這是一個很好的解決方案。謝謝。 – 2013-04-05 20:02:39
相關問題
- 1. 如何防止附加javaagent?
- 2. 在ant中設置javaagent
- 3. 如何對外公開jacoco javaagent
- 4. 如何在intellij idea VM Options中設置javaagent?
- 5. Javaagent類卸載
- 6. 卸載JavaAgent
- 7. 在Play框架2.5.x中設置javaagent
- 8. 如何在JFrame中「打包」JPanel?
- 9. 如何在Go中打包FPrintf?
- 10. 如何在RTP中打包H264?
- 11. 如何在laravel中打包JavaScript文件?
- 12. 如何在C++中打包CFtpFileFind示例?
- 13. Angular4:如何在打印中包含test.component.css
- 14. 如何打包一個包
- 15. 如何打包UIViewController?
- 16. 如何打包WAR
- 17. 在沒有包裝代理的情況下使用-javaagent到罐子中
- 18. javaagent不javaws的JNLP和
- 19. 如何在圖像上打包div?
- 20. 如何在Eclipse RCP上打包圖標
- 21. 如何打包與setuptools的
- 22. 如何打包iphone代碼
- 23. 如何防止div打包?
- 24. 如何打包java項目?
- 25. 如何打包Linux遊戲?
- 26. 如何執行Python包的Debian打包?
- 27. textview在android中打包
- 28. 如何在ubuntu上打開Eclipse - tegra開發包 - 在ubuntu中
- 29. 在Play Framework中,如何在打包時排除文件?
- 30. 如何在iphone中打包標籤中的一行?
你能抓住並處理沒有應用程序Mbeans的第一對民意調查嗎?或者可能在投票中最初拖延? – Gray 2013-04-04 18:37:59