提问者:小点点

如何通过JConsole连接到ActiveMQ Artemis?


我正在尝试通过JConsole连接到ActiveMQ Artemis。然而,它似乎不起作用。

  • JDK版本:1.8.0
  • ActiveMQ Artemis版本:2.6.2

我尝试了以下带有和不带用户/密码(admin/admin)的URL。:

service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi 

service:jmx:rmi:///jndi/rmi://0.0.0.0:1099/jmxrmi

我的代理在本地运行。我刚刚解压缩并创建了一个实例。这是我的管理. xml

<management-context xmlns="http://activemq.org/schema">
  <connector connector-port="1099"/>
   <authorisation>
      <whitelist>
         <entry domain="hawtio"/>
      </whitelist>
      <default-access>
         <access method="list*" roles="amq"/>
         <access method="get*" roles="amq"/>
         <access method="is*" roles="amq"/>
         <access method="set*" roles="amq"/>
         <access method="*" roles="amq"/>
      </default-access>
      <role-access>
         <match domain="org.apache.activemq.artemis">
            <access method="list*" roles="amq"/>
            <access method="get*" roles="amq"/>
            <access method="is*" roles="amq"/>
            <access method="set*" roles="amq"/>
            <access method="*" roles="amq"/>
         </match>
         <!--example of how to configure a specific object-->
         <!--<match domain="org.apache.activemq.artemis" key="subcomponent=queues">
            <access method="list*" roles="view,update,amq"/>
            <access method="get*" roles="view,update,amq"/>
            <access method="is*" roles="view,update,amq"/>
            <access method="set*" roles="update,amq"/>
            <access method="*" roles="amq"/>
         </match>-->
      </role-access>
   </authorisation>
</management-context>

我尝试了以下方法:

  1. Uncommented <connector connector-port="1099"/> in management.xml file
  2. Uncommented in artemis-service.xml:
    <!-- uncomment this if you want to connect jconsole to connect -->
    <argument>-Dcom.sun.management.jmxremote</argument>
    <argument>-Dcom.sun.management.jmxremote.port=1099</argument>
    <argument>-Dcom.sun.management.jmxremote.ssl=false</argument>
    <argument>-Dcom.sun.management.jmxremote.authenticate=false</argument>
    
    <argument>-Dcom.sun.management.jmxremote.rmi.port=1099</argument>
    

共1个答案

匿名用户

我刚刚通过执行以下操作在ActiveMQ Artemis 2.6.2中工作:

  1. 下载并解压ActiveMQ Artemis 2.6.2到

我在Linux上使用了1.8JDK。我没有可以测试的视窗盒子。

也可以通过更改步骤#4来实现此工作

  1. Download and unzip ActiveMQ Artemis 2.6.2 to <ACTIVEMQ_HOME>
  2. Open a terminal and run cd <ACTIVEMQ_HOME>/bin
  3. Create a new broker instance using ./artemis create ~/testJMX --user myUser --pass myPass --require-login
  4. Remove all of the contents of the management-context element in etc/management.xml so that you're left only with this:
    <management-context xmlns="http://activemq.org/schema" />
    

    总的来说,我建议您迁移到最新版本。ActiveMQ Artemis 2.6.2已发布近3年。自2.6.2发布以来,JMX属性已从artemis-service. xml中删除,因为它们不再适用。有关更多详细信息,请参阅ARTEMIS-2112。