【问题标题】:Can not stop a JMS broker using activemq-admin.bat when the JAVA_HOME points to JRE 1.8当 JAVA_HOME 指向 JRE 1.8 时,无法使用 activemq-admin.bat 停止 JMS 代理
【发布时间】:2017-04-07 06:13:30
【问题描述】:

当 JAVA_HOME 指向 JRE (1.8.111) 时,我无法使用 activemq-admin.bat 脚本停止 JMS 代理。使用 JDK 时不会出现该问题。 在脚本中,取消注释 ACTIVEMQ_SUNJMX_START 参数,并将默认端口更改为 61099,如下所示:

"set ACTIVEMQ_SUNJMX_START=-Dcom.sun.management.jmxremote.port=61099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

不知何故,该端口似乎被忽略了......

我们是否需要 JDK 来停止代理? 有什么想法吗?

JRE 1.8.111 PATH\bin>call "..\middleware\apache-activemq-5.14.0\bin\activemq-admin.bat" "stop" Java Runtime: Oracle Corporation 1.8.0_111 C:\Program Files\Java\jre1.8.0_111 Heap sizes: current=251392k free=248770k max=3706880k JVM args: -Dactivemq.classpath=PATH\middleware\apache-activemq-5.14.0\bin..\conf;_PROGRAM_DATA_\middleware\apache-activemq-5.14.0; -Dactivemq.home=PATH\middleware\apache-activemq-5.14.0\bin.. -Dactivemq.base=PATH\middleware\apache-activemq-5.14.0\bin.. -Dactivemq.data=_PROGRAM_DATA_\middleware\apache-activemq-5.14.0 -Djava.io.tmpdir=_PROGRAM_DATA_\middleware\apache-activemq-5.14.0\tmp -Dactivemq.conf=PATH\middleware\apache-activemq-5.14.0\bin..\conf Extensions classpath: [PATH\middleware\apache-activemq-5.14.0\bin..\lib,PATH\middleware\apache-activemq-5.14.0\bin..\lib\camel,PATH\middleware\apache-activemq-5.14.0\bin..\lib\optional,PATH\middleware\apache-activemq-5.14.0\bin..\lib\web,PATH\middleware\apache-activemq-5.14.0\bin..\lib\extra] ACTIVEMQ_HOME: PATH\middleware\apache-activemq-5.14.0\bin.. ACTIVEMQ_BASE: PATH\middleware\apache-activemq-5.14.0\bin.. ACTIVEMQ_CONF: PATH\middleware\apache-activemq-5.14.0\bin..\conf ACTIVEMQ_DATA: _PROGRAM_DATA_\middleware\apache-activemq-5.14.0 Connecting to JMX URL: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi INFO: Broker not available at: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi

JDK 1.8.111 PATH\bin>call "..\middleware\apache-activemq-5.14.0\bin\activemq-admin.bat" "stop" Java Runtime: Oracle Corporation 1.8.0_111 C:\Program Files\Java\jdk1.8.0_111\jre Heap sizes: current=251392k free=248770k max=3706880k JVM args: -Dactivemq.classpath=PATH\middleware\apache-activemq-5.14.0\bin..\conf;_PROGRAM_DATA_\middleware\apache-activemq-5.14.0; -Dactivemq.home=PATH\middleware\apache-activemq-5.14.0\bin.. -Dactivemq.base=PATH\middleware\apache-activemq-5.14.0\bin.. -Dactivemq.data=_PROGRAM_DATA_\middleware\apache-activemq-5.14.0 -Djava.io.tmpdir=_PROGRAM_DATA_\middleware\apache-activemq-5.14.0\tmp -Dactivemq.conf=PATH\middleware\apache-activemq-5.14.0\bin..\conf Extensions classpath: [PATH\middleware\apache-activemq-5.14.0\bin..\lib,PATH\middleware\apache-activemq-5.14.0\bin..\lib\camel,PATH\middleware\apache-activemq-5.14.0\bin..\lib\optional,PATH\middleware\apache-activemq-5.14.0\bin..\lib\web,PATH\middleware\apache-activemq-5.14.0\bin..\lib\extra] ACTIVEMQ_HOME: PATH\middleware\apache-activemq-5.14.0\bin.. ACTIVEMQ_BASE: PATH\middleware\apache-activemq-5.14.0\bin.. ACTIVEMQ_CONF: PATH\middleware\apache-activemq-5.14.0\bin..\conf ACTIVEMQ_DATA: _PROGRAM_DATA_\middleware\apache-activemq-5.14.0 useJmxServiceUrl Found JMS Url: service:jmx:rmi://127.0.0.1/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2Z XIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjE5Mi4xNjguMTAwLjIwAAD9nHXsmR+4orQ3llsk9wAAAVhxZdSygAIAeA== Connecting to pid: 5020 Stopping broker: MYBROKER

【问题讨论】:

    标签: java apache java-8 activemq


    【解决方案1】:

    这是因为 ActiveMQ 使用 Java Attach API 自动发现 JMX URL。为了使用这个 API,类从 $JAVA_HOME\..\lib\tools.jar 加载。由于 tools.jar 是 JDK 的一部分(请参阅 JDK files),因此对于 JRE(不是 JDK $JDK_HOME\jre 附带的 JRE)将失败。

    要使用 JRE 停止代理,您必须提供 JMX URL。

    set ACTIVEMQ_OPTS=-Dactivemq.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:61099/jmxrmi
    activemq-admin.bat stop
    

    连接消息看起来像

    Connecting to JMX URL: service:jmx:rmi:///jndi/rmi://localhost:61099/jmxrmi
    

    【讨论】:

    • 谢谢你的答案。我会试试的。
    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    相关资源
    最近更新 更多