JBoss HornetQ JMX访问

时间:2013-08-05 17:15:50

标签: jboss

我们在JBoss内部运行HornetQ消息。从远程VM,我们无法使用JMXURL进行连接。

HornetQ设置(hornet1 configuration.xml):

<jmx-management-enabled>true</jmx-management-enabled>

JBoss设置

  

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

从远程JVM中,这些URL都不起作用:

  • 服务:JMX:RMI:/// JNDI / RMI://本地主机:8070 / jmxrmi
  • 服务:JMX:RMI:/// JNDI / RMI://127.0.0.1:8007 / JMXConnector的

2 个答案:

答案 0 :(得分:1)

至于JBoss 6.0.0

  

jconsole服务:jmx:rmi:// localhost / jndi / rmi:// localhost:1090 / jmxconnector

的工作原理。如果您将localhost替换为您的主机地址,那么它也会有效。

请注意,我使用

启动了JBoss
  

run.sh -c whatever --host = 0.0.0.0

以便JBoss绑定到所有接口/地址(而不是仅限localhost):

  

- host = host_or_ip ...所有JBoss服务的绑定地址

答案 1 :(得分:0)

我已将run.sh更改为:

export JMX_ARGS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=3000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
java $JVM_ARGS -classpath $CLASSPATH $JMX_ARGS  org.hornetq.integration.bootstrap.HornetQBootstrapServer $FILENAME

然后当hornetq启动时,你应该在日志中看到这个:

15:15:22,312 CONFIG [sun.management.jmxremote] JMX Connector ready at: service:jmx:rmi:///jndi/rmi://localhost:3000/jmxrmi

在客户端,你应该可以用这个连​​接到服务器:

val url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:3000/jmxrmi")
val connection = JMXConnectorFactory.connect(url, new java.util.HashMap())
def mbeanServer = connection.getMBeanServerConnection()
val objectName = new ObjectName("org.hornetq:module=Core,type=Server")
val serverInfo = mbeanServer.getMBeanInfo(objectName)
println(serverInfo.getDescription())