我想通過將客戶端包裝到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. 如何防止附加javaagent?
- 3. 如何爲Android指定javaagent?
- 4. 如何測試ClassFileTransformer/javaagent?
- 5. 在Eclipse中添加javaagent
- 6. 在javaagent中訪問servlet-api
- 7. 在ant中設置javaagent
- 8. 如何對外公開jacoco javaagent
- 9. 如何分析fatal -javaagent錯誤?
- 10. 如何在intellij idea VM Options中設置javaagent?
- 11. Javaagent類卸載
- 12. 卸載JavaAgent
- 13. 在Play框架2.5.x中設置javaagent
- 14. 如何在C++中打包CFtpFileFind示例?
- 15. 如何在laravel中打包JavaScript文件?
- 16. 如何在JFrame中「打包」JPanel?
- 17. 如何在RTP中打包H264?
- 18. 如何在Go中打包FPrintf?
- 19. 如何在php中打包對象?
- 20. 如何在some_module.rb文件中打包before_filter?
- 21. 如何在列表框中打包
- 22. 如何在jar中打包opencv + java
- 23. Angular4:如何在打印中包含test.component.css
- 24. 如何在Python中打包列表
- 25. 如何在winforms listview中打包圖像?
- 26. 如何打包一個包
- 27. Javaagent。做什麼的?
- 28. 如何打包UIViewController?
- 29. 如何打包wsdls?
- 30. 如何打包WAR
你能抓住並處理沒有應用程序Mbeans的第一對民意調查嗎?或者可能在投票中最初拖延? – Gray 2013-04-04 18:37:59