部署后JMX MBean不可见

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署后JMX MBean不可见相关的知识,希望对你有一定的参考价值。

环境NetBeans 6.9.1,GlassFish 3.1,METRO 2.1

我想列出一下可用的Web服务,所以我要查询JazX MBeanServer for *:type=WSEndpoint,*。问题是,部署后只有~56个Mbeans,并且没有注册WSEndpoint bean。如果我与JMXterm连接,MBean计数会跳升到~380,并且所有WSEndpoint bean都可见。从JConsole,我没有看到任何folder,但在运行JMXterm之后我做到了。

即使我调用Web服务,MBean也会保持未注册状态。 METRO监控默认启用,我就这样做了;部署控制台消息后,显示INFO: Metro monitoring rootname successfully set to: amx:pp=/mon/server-mon[server],type=WSEndpoint,name=...

JMXterm做了什么,以便所有MBean都可见?它是否对MBeanServer进行任何方法调用?有没有解决方案,以便我可以在部署后立即访问WSEndpoint bean?

答案

您可以通过在MBean bootAMX上执行JMX操作amx-support:type=boot-amx来触发所有AMX MBean的注册。

另一答案

同时,我在METRO用户指南中找到了答案:19.5. Notes

AMX mbean是懒洋洋地创建的。因此,如果在GlassFish中部署端点,然后使用JConsole查找Metro WSEndpoint mbeans,则有时会出现AMX mbean。要激活它,请启动asadmin GUI或CLI。或者使用jmxterm并发出其domains命令。

在某些情况下,在端点收到第一个客户端调用之前,不会显示Metro端点mbeans。

如果存根刚刚用于一个调用然后立即关闭,则WSClient mbeans可以快速出现和消失。使用可靠消息传递或安全对话的存根通常会保持活动状态,因为它很可能会用于多个呼叫。

但是,在运行asadmin GUI或CLI后没有帮助,我只能通过使用JMXterm连接到JVM来解决它。

以上是关于部署后JMX MBean不可见的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.2:JMX 配置错误。无法获取 MBean

使用 Java 和 JMX/MBean 访问 Weblogic JMS

从零开始玩转JMX——简介和Standard MBean

从零开始玩转JMX——Apache Commons Modeler & Dynamic MBean

开源框架是如何通过JMX来做监控的 - JMX简介和Standard MBean

JMX MBean class xxx does not implement DynamicMBean, and neither follows the Standard MBean conventi