有什么区别:标准MBean动态MBean它们各自的优缺点是什么?我们什么时候应该选择这两个组件中的任何一个来管理资源? 最佳答案 标准mbean具有固定的元数据,在MBean的生命周期内不会更改。动态MBean动态定义它们的元数据,并且可以修改和重新发布它们的元数据。想想这个与Java的[糟糕]设计类比:假设您编写了一个列出目录中文件数量的类。标准的类方法可能如下所示:publicintgetFileCount(StringdirectoryName)另一方面,此类的DynamicMBean版本在启动时没有任何方法,但是当它启动时,
启用JMX的Java应用程序似乎在JMX客户端连接时打开一个随机高阶端口我已经成功配置了一个启用了helloworldJMX的程序,我可以使用jconsoleJMX客户端从远程位置连接到它。当我尝试打开iptables时,我注意到客户端登录时会建立一个随机的高阶端口。最终我想在防火墙隔离的网段中监控Java应用程序。能否控制随机端口开放的范围?如果有建议,我会将此问题移至serverfault.com。 最佳答案 从Java7u25开始,可以使用系统属性更改RMI端口:-Dcom.sun.management.jmxremote.r
我在JMXjava中工作,我通过使用ThreadMXBean接口(interface)的getAllThreadIds()方法获取所有线程ID,但我需要一种方法来终止线程给定的ID。例如:ThreadMXBeantbean;tbean=ManagementFactory.getThreadMXBean();long[]IDs=tbean.getAllThreadIds();//....IneedawaytokilltheThreadswhichhavethisIDs 最佳答案 你可以试试这个:publicvoidprintAllTh
我需要以编程方式启动一个新的java进程并动态设置JMX端口。所以不要这样做-Djava.rmi.server.hostname=127.0.0.1-Dcom.sun.management.jmxremote.port=9995-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false我想做以下事情System.setProperty("java.rmi.server.hostname","127.0.0.1");System.setProperty("com.sun
我有一个程序需要动态地(即在运行时)打开一个可用的套接字并在其上启动一个JMX代理。此JMX参数是在Java代码中设置的,而不是通过命令行设置的。这很好用。此后需要通过JavaVisualVM进行监控(即发出JMX命令等)远程程序中的RMI服务器代理是开箱即用的管理方式,描述如下:http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html我的问题可以概括为:这样的命令行属性如何设置为系统级别通过Java代码,以便可以使用远程分析??-Dcom.sun.management.jmxremo
我在Amazon云中的Linux服务器上运行Tomcat6。我正在尝试通过我办公室的Mac使用VisualVM连接到它。我允许打开桌面和服务器之间的所有TCP端口,但我无法让VisualVM执行任何操作。在linux机器上,我已经启动了Tomcat:-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=9191-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false在我的Mac上,我启动V
我在我的远程机器上使用以下命令启动了我的OSGi应用程序:java-Dcom.sun.management.jmxremote\-Dcom.sun.management.jmxremote.port=8080\-Dcom.sun.management.jmxremote.local.only=false\-Dcom.sun.management.jmxremote.authenticate=false\-Dcom.sun.management.jmxremote.ssl=false\-jarbin/felix.jar在我的本地机器上,我有VisualVM,我尝试从中连接到远程JVM实例
如何在不使用类HotSpotDiagnosticMXBean的情况下从我的应用程序中创建堆转储。由于java/rt.jar的访问限制,我无法使用对HotSpotDiagnosticMXBean的依赖性来编译它。我知道如何解决eclipse.compiler错误,但如何为我的构建修复它?除了以编程方式创建堆转储之外,还有其他方法吗?此解决方案不起作用,因为它依赖于HotSpotDiagnosticMXBean:HotSpot-dependentHeapDump 最佳答案 好吧,看来你可以通过使用反射绕过限制:packagelab.he
我正在准备面试,这需要对JMS和JMX有所了解,但我没有研究这些。所以需要任何可以让我快速理解的视频教程链接。谢谢。 最佳答案 我没有任何视频可以推荐。但是,我可以推荐以下教程来开始使用JMS和JMX。对于JMSJMSTutorialandCodeCampsChapter31TheJavaMessageServiceAPI在JavaEE5教程中对于JMXGettingStartedwithJavaManagementExtensions(JMX):DevelopingManagementandMonitoringSolutionsL
设计JMXMBean的一些最佳实践是什么?有哪些您认为特别有用的例子吗? 最佳答案 返回绝对计数而不是比率。例如返回数据库提交的总数,而不是得出速率。通过这样做,您的客户可以在他们需要的任何时间段内自行监控和得出利率。也许更重要的是,这可以保护客户在不经常连接的情况下不会错过速率激增的情况。如果您主要通过HTML界面使用JMXbean,那么我可以遵循几种做法。下面通常意味着你的JMXbean应该包装一个现有的bean(而不是仅仅JMX暴露现有的方法):输出代表返回对象的格式正确的字符串。获取默认的toString()输出几乎毫无用处