ActiveMQ中JMX的默认端口是什么?

时间:2012-11-20 08:33:25

标签: java activemq jmx

我正在使用ActiveMQ 5.3.2和5.6.0。 在ActiveMQ 5.3.2中,JMX的默认设置是

SUNJMX="-Dcom.sun.management.jmxremote"

在ActiveMQ 5.6.0中,JMX的默认设置为

ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote"

因此,这些设置没有端口定义。你能告诉我ActiveMQ真的是用这些设置启动JMX连接吗?如果是这样,连接的默认端口是什么,因为我无法连接到1099.如果随机选择端口,如何找到ActiveMQ正在使用的端口?

感谢。

3 个答案:

答案 0 :(得分:7)

默认端口是1099.可以通过将jmx参数作为参数传递给activeMQ启动脚本(activemq.bat或.sh文件)中的activeMQ来覆盖。使用属性

用于设置JMX端口的

Dcom.sun.management.jmxremote.port

答案 1 :(得分:0)

如果您在Spring Boot中运行ActiveMQ Broker,这是一种将JMX端口配置为值11099的简单方法:

    BrokerService broker = new BrokerService();

    broker.getManagementContext().setConnectorPort(11099);
    broker.getSystemUsage().getStoreUsage().setLimit(100_000_000L);
    broker.getSystemUsage().getTempUsage().setLimit(100_000_000L);

    TransportConnector connector = new TransportConnector();
    connector.setUri(new URI("tcp://localhost:61616?wireFormat.maxInactivityDuration=3000000&wireFormat.maxInactivityDurationInitalDelay=1000000"));

    broker.addConnector(connector);
    broker.start();

答案 2 :(得分:0)

默认情况下,它似乎没有绑定到“默认的 activemq jmx 端口”,但是您可以修改 activemq 文件(或添加一个环境变量)。如果不指定端口,JMX 不会通过 expicitly stating one 打开一个。

例如取消注释 this line(或旧版本的 activemq 文件中的等效项)

 # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099 "

所以我想您可以将其视为“如果您取消注释其配置行的默认值”。

此外,当您发出“停止”命令并且它没有传递 --jmxurl(在我运行的 activemq 版本中默认为端口 11099)时,它会默认尝试联系 service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi,即使默认配置不会在没有先修改配置的情况下侦听该端口。奇怪。