部署后不可见JMX mbean



ENVIRONMENT NetBeans 6.9.1, GlassFish 3.1, METRO 2.1

我想做一个可用的web服务列表,所以我查询JMX MBeanServer的*:type=WSEndpoint,*。问题是部署后只有~56个mbean,没有注册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 amx-support:type=boot-amx上执行JMX操作bootAMX来触发所有AMX MBean的注册。

同时,我在METRO用户指南中找到了答案:19.5。笔记。

AMX bean是惰性创建的。因此,如果在GlassFish中部署一个端点,然后使用JConsole查找Metro WSEndpoint mbean,那么有时AMX mbean不会出现。要激活它,请启动asadmin GUI或CLI。或者使用jmxterm并发出它的domain命令。

在某些情况下,直到端点接收到第一个客户端调用,Metro端点mbean才会出现。

如果存根只用于一次调用,那么WSClient mbean可以快速出现和消失,然后立即关闭。使用可靠消息传递或安全会话的存根通常保持活动时间更长,因为它很可能用于多个呼叫。

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

最新更新