与本地运行的Mule 4项目的JMX连接

问题描述

如何将JMX代理连接到本地运行的Mule 4项目?启动JConsole时,我看到两个与{相关的进程,称为org.mule.runtime.module.reboot.MuleContainerBootstrap,但是我无法连接到其中任何一个

我尝试使用以下标志运行我的项目并远程连接:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1096
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.host=localhost

但是没有运气。

解决方法

仅使用以下属性,我就可以毫无问题地连接到(localhost:1096):

-Dcom.sun.management.jmxremote.port=1096
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

JConsole给了我有关不安全连接(没有SSL)的警告。我接受了不安全的连接,这就足够了。

但是,添加-Dcom.sun.management.jmxremote.host=localhost时仍然无法连接。这看起来像是Java问题。

如果您只想确保本地连接,可以将其替换为-Dcom.sun.management.jmxremote.local.only=true,这应该会给您带来预期的结果。

话虽如此,这全都是Java JMX主题。 Mule 4不会像Mule 3那样通过JMX公开任何MBean,因此没有特定的原因可以与JMX连接。

我不确定您为什么要使用jconsole,因为VisualVM是一种非常现代且功能强大的替代产品,除非您只是在测试本地JMX连接;-)