我有一个在远程机器上运行的Java进程,该进程设置了一些mbean。我还有jstatd以与Java进程相同的用户身份在该机器上运行。(可以通过编程方式或使用-Dcom.sun.management.jmxremote...等设置mbean,这似乎没有什么区别)。VisualVM能够与它自动发现的进程建立jstatd连接,但这意味着我无法访问mbean或CPU历史图表等。或者,我可以创建一个显式JMX连接,这为我提供了通常范围内的有用工具,但我希望应用程序在启动时分配一个随机JMX端口,此配置不能是静态的。有没有办法让VisualVM通过JMX自动连接到我的进程?这将需要它自动发现JMX
我希望能够记录所有可通过jconsole访问的JMX数据。有没有办法以编程方式执行此操作?我正在构建一种系统日志记录形式,我想使用类似于jconsole的工具创建可查看的间隔数据。我该怎么做? 最佳答案 java.lang.management.ManagementFactory使您可以访问JMX数据。例如ListmemPoolBeans=ManagementFactory.getMemoryPoolMXBeans();for(MemoryPoolMXBeanmpb:memPoolBeans){System.out.println(
我试图让一个类实现一个MBean接口(interface),这样我就可以在运行时查询属性。我要查询的类如下publicclassProfileCacheimplementsProfileCacheInterfaceMBean{privateLoggerlogger=Logger.getLogger(ProfileCache.class);privateConcurrentMapcache;publicProfileCache(ConcurrentMapcache){this.cache=cache;}/***Updatethecacheentryforagivenuserid*@par
我们目前正在将我们的一些项目从JBoss4.x移植到JBoss7。到目前为止,一切似乎都运行良好,除了我们的MBean,我们通常使用它来提供简单的管理操作。我已经搜索了很长时间,但要么我无法找到正确的搜索词,要么我遗漏了一些知识来弥合JBoss4.x中的MBean定义和JBoss7.因此,希望有人可以提示我可能遗漏了什么或我必须阅读的地方(可能是一些文档、示例等)在Jboss4.x中,我们的MBean通常如下所示:@Service(objectName="Domain:Name=SomeMBean",xmbean="resource:")classSomeMBean{@EJBpriva
有没有办法在jvisualvm中重新连接断开的JMX连接?当受监控的启用JMX的应用程序重新启动时,我必须重新启动jvisualvm才能重新连接它。我错过了什么吗?这是我的jvisualvm详细信息:Version:1.6.0_22(Build100326);platform091221-4fc006d17cb1System:Linux(2.6.35-23-generic),amd6464bitJava:1.6.0_22;JavaHotSpot(TM)64-BitServerVM(17.1-b03,mixedmode) 最佳答案 该
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我正在寻找JMX查询工具。我遇到过jolokia和jmxtrans,它们都支持基于JSON的查询。JMXtrans有我认为Jolokia缺少的监视工具的作者。我用谷歌搜索,但我没有得到太多比较这两者的信息。但是我已经阅读了关于这两种工具的正面博客文章。如果有人早先使用过这些,请分享您的经验...
我想使用jmx或jstatd通过ssh隧道(到EC2机器)使用visualvm应用程序。我该怎么做呢?以下是已尝试(和失败)的列表:(顺便说一句:如果visualvm不合适,我如何找到远程机器上的内存泄漏?)jstatd:尝试:我在EC2机器上设置了jstatd服务器(应用程序已经在上面运行)然后我设置了一个隧道映射本地端口3333到远程端口1099在VisualVM中,我尝试在端口3333上使用jstatd进行连接...EC2上的所有进程都没有出现这个链接说jstatd打开了另一个端口:http://rukuro-blog.heroku.com/2011/06/30/monitori
几年前,我们已经在JDK5上开发了分布式Web应用程序。HowJMXwillhelpthisapplication?1)它会帮助我监控性能(内存、CPU以及网络和磁盘IO)吗?2)如果是这样,那么应用程序部署在多个服务器上,我如何在一个仪表板中进行监控?3)我是否必须对现有应用程序进行任何新的代码更改,或者我可以在不更改代码的情况下进行监控?4)除了性能监控,我们还能做什么?因为名称是ManagementExtensions(MX),我们可以管理什么以及如何管理?似乎主要目标不是监控,而是管理?我无法从Oracle网站提供的教程中了解更多关于JMX的信息http://docs.or
我正在尝试使用visualVM来分析我正在使用Intellij调试的简单Java应用程序。我启动应用程序进行调试,打开visualVM,我可以在列表中看到我的应用程序。我可以打开它;但是,我无法对我的应用程序使用采样或分析。其他应用程序,如Intellij,可以很好地分析。当我检查visualVM日志时,我看到:信息[com.sun.tools.visualvm.jmx.impl.JmxModelImpl]:连接(2749)com.sun.tools.attach.AttachNotSupportedException:无法打开套接字文件:目标进程未响应或未加载HotSpotVM更多信
我希望有可能在生产中使用jconsole,但我有点担心性能。让JMX代理继续运行(通过-Dcom.sun.management.jmxremote)是否可以,或者它会有明显的性能足迹吗? 最佳答案 一般来说,在启用JMX的情况下运行JVM不会导致明显的性能下降。仅当连接了jconsole之类的工具并实际轮询信息时,性能才会受到影响。查看以下链接了解更多详情:https://community.oracle.com/blogs/emcmanus/2006/07/21/how-much-does-it-cost-monitor-app-