Chapter 4. Use AMQ Management Console


You can manage your AMQ Broker installation in a web browser by using AMQ Management Console, which is included in the AMQ Broker installation.

AMQ Management Console is based on hawtio.

4.1. Overview

AMQ Broker is a full-featured, message-oriented middleware broker. It offers specialized queuing behaviors, message persistence, and manageability. It supports multiple protocols and client languages, freeing you to use many of your application assets.

AMQ Broker’s key features allow you to:

  • monitor your AMQ brokers and clients

    • view the topology
    • view network health at a glance
  • manage AMQ brokers using:

    • AMQ Management Console
    • Command-line Interface (CLI)
    • Management API

The supported web browsers for AMQ Management Console are Firefox and Chrome.

Configure the broker to allow access to the AMQ Management Console from local or remote hosts.

Remote access to the console can take one of two forms:

  • Within a console session on a local broker, you use the Connect tab to connect to another, remote broker
  • From a remote host, you connect to the console for the local broker, using an externally-reachable IP address for the local broker

Prerequisites

  • You have upgraded to at least AMQ Broker 7.1.0. As part of this upgrade, an access-management configuration file named jolokia-access.xml is added to the broker instance. For more information about upgrading, see Upgrading a Broker instance from 7.0.x to 7.1.0.

Procedure

  1. Open the <broker_instance_dir>/etc/bootstrap.xml file.
  2. Within the web element, observe that the web port is bound only to localhost by default.

    <web path="web">
      <binding uri="http://localhost:8161">
        <app url="redhat-branding" war="redhat-branding.war"/>
        <app url="artemis-plugin" war="artemis-plugin.war"/>
        <app url="dispatch-hawtio-console" war="dispatch-hawtio-console.war"/>
        <app url="console" war="console.war"/>
      </binding>
    </web>
  3. To enable connection to the console for the local broker from a remote host, change the web port binding to a network-reachable interface. For example:

    <web path="web">
      <binding uri="http://0.0.0.0:8161">

    In the preceding example, by specifying 0.0.0.0, you bind the web port to all interfaces on the local broker.

  4. Save the bootstrap.xml file.
  5. Open the <broker_instance_dir>/etc/jolokia-access.xml file.
  6. Within the <cors> (that is, Cross-Origin Resource Sharing) element, add an allow-origin entry for each HTTP origin request header that you want to allow to access the console. For example:

    <cors>
       <allow-origin>*://localhost*</allow-origin>
       <allow-origin>*://192.168.0.49*</allow-origin>
       <allow-origin>*://192.168.0.51*</allow-origin>
       <!-- Check for the proper origin on the server side, too -->
       <strict-checking/>
    </cors>

    In the preceding configuration, you specify that the following connections are allowed:

    • Connection from the local host (that is, the host machine for your local broker instance) to the console.

      • The first asterisk (*) wildcard character allows either the http or https scheme to be specified in the connection request, based on whether you have configured the console for secure connections.
      • The second asterisk wildcard character allows any port on the host machine to be used for the connection.
    • Connection from a remote host to the console for the local broker, using the externally-reachable IP address of the local broker. In this case, the externally-reachable IP address of the local broker is 192.168.0.49.
    • Connection from within a console session opened on another, remote broker to the local broker. In this case, the IP address of the remote broker is 192.168.0.51.
  7. Save the jolokia-access.xml file.
  8. Open the <broker_instance_dir>/etc/artemis.profile file.
  9. To enable the Connect tab in the console, set the value of the Dhawtio.disableProxy argument to false.

    -Dhawtio.disableProxy=false
    Important

    It is recommended that you enable remote connections from the console (that is, set the value of the Dhawtio.disableProxy argument to false) only if the console is exposed to a secure network.

  10. Add a new argument, Dhawtio.proxyWhitelist, to the JAVA_ARGS list of Java system arguments. As a comma-separated list, specify IP addresses for any remote brokers that you want to connect to from the local broker (that is, by using the Connect tab within a console session running on the local broker). For example:

    -Dhawtio.proxyWhitelist=192.168.0.51

    Based on the preceding configuration, you can use the Connect tab within a console session on the local broker to connect to another, remote broker with an IP address of 192.168.0.51.

  11. Save the aretmis.profile file.

4.3. Access AMQ Management Console

You can access the console from a local or remote host, and connect to other brokers within the console session.

  • Open a console instance for the local broker from a remote host using the externally-reachable IP address of the local broker

Prerequisites

Procedure

  1. In your web browser, navigate to the console address for the local broker.

    The console address is http://<host:port>/console/login. If you are using the default address, navigate to http://localhost:8161/console/login. Otherwise, use the values of host and port that are defined for the bind attribute of the web element in the <broker_instance_dir>/etc/bootstrap.xml configuration file.

  2. Log in to AMQ Management Console using the default user name and password that you created when you created the broker.
  3. To connect to another, remote broker from the console session of the local broker:

    1. In the left menu, click the Connect tab.
    2. In the main pane, on the Remote tab, click the Add connection button.
    3. In the Add Connection dialog box, specify the following details:

      Name
      Name for the remote connection, for example, my_other_broker.
      Scheme
      Protocol to use for the remote connection. Select http for a non-secured connection, or https for a secured connection.
      Host
      IP address of a remote broker. You must have already configured console access for this remote broker.
      Port
      Port on the local broker to use for the remote connection. Specify the port value that is defined for the bind attribute of the web element in the <broker_instance_dir>/etc/bootstrap.xml configuration file. The default value is 8161.
      Path
      Path to use for console access. Specify console/jolokia.
    4. To test the connection, click the Test Connection button.

      If the connection test is successful, click the Add button. If the connection test fails, review and modify the connection details as needed. Test the connection again.

    5. On the Remote page, for a connection that you have added, click the Connect button.

      A new web browser tab opens for the console instance on the remote broker.

    6. In the Log In dialog box, enter the user name and password for the remote broker. Click Log In.

      The console instance for the remote broker opens.

  4. To connect to the console for the local broker from a remote host, specify the Jolokia endpoint for the local broker in a web browser. This endpoint includes the externally-reachable IP address that you specified for the local broker when configuring remote console access. For example:

    http://192.168.0.49/console/jolokia

4.4. Configure AMQ Management Console

Configure authentication and authorization settings for the AMQ Management Console to control user access to broker resources.

You can configure Hawtio to use an OpenID Connect provider, such as Red Hat Single Sign-On, to manage authentication for AMQ Management Console.

Prerequisites

  • Red Hat Single Sign-On

Procedure

  1. Configure Red Hat Single Sign-On:

    1. Navigate to the realm in Red Hat Single Sign-On that you want to use for securing AMQ Management Console. Each realm in Red Hat Single Sign-On includes a client named Broker. This client is not related to AMQ.
    2. Create a new client in Red Hat Single Sign-On, for example amq-console.
    3. Navigate to the client settings page and set:

      • Valid Redirect URIs to the AMQ Management Console URL followed by *, for example:

        https://broker.example.com:8161/console/*
      • Web Origins to the same value as Valid Redirect URIs. Red Hat Single Sign-On allows you enter +, indicating that allowed CORS origins includes the value for Valid Redirect URIs.
    4. Create a role for the client, for example amq.
    5. Ensure all users who require access to AMQ Management Console are assigned the above role, for example, using Red Hat Single Sign-On groups.
  2. Configure the AMQ Broker instance to integrate with Red Hat Single Sign-On by using the generic OpenID Connect support in Hawtio.

    1. Create a <broker-instance-dir>/etc/hawtio-oidc.properties file and specify the details required by the broker to use Red Hat Single Sign-On for authentication. For example:

      name = RHSSO
      provider = https://rhsso-host:18080/realms/amq-console
      client_id = amq
      redirect_uri = https://broker.example.com:8161/console
      response_mode = fragment
      scope = openid email profile
      code_challenge_method = S256
      prompt = login
      oidc.cacheConfig = true
      jwks.cacheTime = 60
      oidc.userPath = preferred_username
      oidc.rolesPath = realm_access.roles
      http.connectionTimeout = 5000
      http.readTimeout = 10000

      For more information about the supported configuration options in the hawtio-oidc.properties file, see the Hawtio documentation.

    2. If you specify role names for the client in the Red Hat Single Sign-On realm that do not match roles configured in (brokername) security settings, create a mapping between the roles in the hawtio-oidc.properties file.

      The following example creates a mapping between an ssoadmin role configured in the Red Hat Single Sign-On realm and the amq role on the broker.

      roleMapping.ssoadmin = amq
      Note

      Ensure that all roles that require permission to log in to AMQ Management Console are added to the HAWTIO_ROLES variable in the <broker-instance-dir>/etc/artemis.profile file. You can replace the list of role names in the HAWTIO_ROLES variable with a wildcard asterisk (*) to grant all roles permission to log in to the console.

  3. Edit the <broker-instance-dir>/etc/broker.xml file and assign permissions to a role configured on the broker. For example:

             <security-setting match="Info">
                <permission roles="amq" type="createDurableQueue"/>
                <permission roles="amq" type="deleteDurableQueue"/>
                <permission roles="amq" type="createNonDurableQueue"/>
                <permission roles="amq" type="deleteNonDurableQueue"/>
                <permission roles="amq" type="send"/>
                <permission roles="amq" type="consume"/>
             </security-setting>
  4. Run the AMQ Broker instance and validate AMQ Management Console configuration.

You can configure user access to the AMQ Management Console by using guest, basic, or LDAP authentication methods.

The following table describes the different methods you can use to grant users access to the AMQ Management Console:

Table 4.1. Methods to grant users access to AMQ Management Console
Authentication MethodDescription

Guest authentication

Enables anonymous access. In this configuration, any user who connects without credentials or with the wrong credentials is authenticated automatically and assigned a specific user and role.

For more information, see Configuring guest access in Configuring AMQ Broker.

Basic user and password authentication

For each user, you must define a username and password and assign a security role. Users can only log into AMQ Management Console using these credentials.

For more information, see Configuring basic user and password authentication in Configuring AMQ Broker.

LDAP authentication

Users are authenticated and authorized by checking the credentials against user data stored in a central X.500 directory server.

For more information, see Configuring LDAP to authenticate clients in Configuring AMQ Broker.

You can secure network access to the AMQ Management Console by using SSL/TLS to encrypt traffic over a WAN or the internet.

Prerequisites

The following should be located in the <broker_instance_dir>/etc/ directory:

  • Java key store
  • Java trust store (needed only if you require client authentication)

Procedure

  1. Open the <broker_instance_dir>/etc/bootstrap.xml file.
  2. In the <web> element, add the following attributes:

    <web path="web">
        <binding uri="https://0.0.0.0:8161" keyStorePath="<path_to_keystore>" keyStorePassword="<password>"
        clientAuth="<true/false>" trustStorePath="<path_to_truststore>" trustStorePassword="<password>">
        </binding>
    </web>
    bind
    For secure connections to the console, change the URI scheme to https.
    keyStorePath

    Path of the keystore file. For example:

    keyStorePath="<broker_instance_dir>/etc/keystore.jks"
    keyStorePassword
    Key store password. This password can be encrypted.
    clientAuth
    Specifies whether client authentication is required. The default value is false.
    trustStorePath
    Path of the trust store file. You need to define this attribute only if clientAuth is set to true.
    trustStorePassword
    Trust store password. This password can be encrypted.

You can configure AMQ Management Console to authenticate users by using SSL certificates, eliminating the need for passwords.

Procedure

  1. Obtain certificates for the broker and clients from a trusted certificate authority or generate self-signed certificates. If you want to generate self-signed certificates, complete the following steps:

    1. Generate a self-signed certificate for the broker.

      $ keytool -storetype pkcs12 -keystore broker-keystore.p12 -storepass securepass -keypass securepass -alias client -genkey -keyalg "RSA" -keysize 2048 -dname "CN=ActiveMQ Broker, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -ext bc=ca:false -ext eku=cA
    2. Export the certificate from the broker keystore, so that it can be shared with clients.

      $ keytool -storetype pkcs12 -keystore broker-keystore.p12 -storepass securepass -alias client -exportcert -rfc > broker.crt
    3. On the client, import the broker certificate into the client truststore.

      $ keytool -storetype pkcs12 -keystore client-truststore.p12 -storepass securepass -keypass securepass -importcert -alias client-ca -file broker.crt -noprompt
    4. On the client, generate a self-signed certificate for the client.

      $ keytool -storetype pkcs12 -keystore client-keystore.p12 -storepass securepass -keypass securepass -alias client -genkey -keyalg "RSA" -keysize 2048 -dname "CN=ActiveMQ Client, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -ext bc=ca:false -ext eku=cA
    5. Export the client certificate from the client keystore to a file so that it can be added to the broker truststore.

      $ keytool -storetype pkcs12 -keystore client-keystore.p12 -storepass securepass -alias client -exportcert -rfc > client.crt
    6. Import the client certificate into the broker truststore.

      $ keytool -storetype pkcs12 -keystore client-truststore.p12 -storepass securepass -keypass securepass -importcert -alias client-ca -file client.crt -noprompt
      Note

      On the broker machine, ensure that the keystore and truststore files are in a location that is accessible to the broker.

  2. In the <broker_instance_dir>/etc/bootstrap.xml file, update the web configuration to enable the HTTPS protocol and client authentication for the broker console. For example:

    ...
    <web path="web">
        <binding uri="https://localhost:8161" keyStorePath="${artemis.instance}/etc/server-keystore.p12" keyStorePassword="password"
        clientAuth="true" trustStorePath="${artemis.instance}/etc/client-truststore.p12" trustStorePassword="password">
        ...
        </binding>
    </web>
    ...
    binding uri
    Specify the https protocol to enable SSL and add a host name and port.
    keystorePath
    The path to the keystore where the broker certificate is installed.
    keystorePassword
    The password of the keystore where the broker certificate is installed.
    ClientAuth
    Set to true to configure the broker to require that each client presents a certificate when a client tries to connect to the broker console.
    trustStorePath
    If clients are using self-signed certificates, specify the path to the truststore where client certificates are installed.
    trustStorePassword

    If clients are using self-signed certificates, specify the password of the truststore where client certificates are installed .

    NOTE. You need to configure the trustStorePath and trustStorePassword properties only if clients are using self-signed certificates.

  3. Obtain the Subject Distinguished Names (DNs) from each client certificate so you can create a mapping between each client certificate and a broker user.

    1. Export each client certificate from the client’s keystore file into a temporary file. For example:

      keytool -export -file <file_name> -alias broker-localhost -keystore broker.ks -storepass <password>
    2. Print the contents of the exported certificate:

      keytool -printcert -file <file_name>

      The output is similar to that shown below:

      Owner: CN=AMQ Client, OU=Artemis, O=AMQ, L=AMQ, ST=AMQ, C=AMQ
      Issuer: CN=AMQ Client, OU=Artemis, O=AMQ, L=AMQ, ST=AMQ, C=AMQ
      Serial number: 51461f5d
      Valid from: Sun Apr 17 12:20:14 IST 2022 until: Sat Jul 16 12:20:14 IST 2022
      Certificate fingerprints:
      	 SHA1: EC:94:13:16:04:93:57:4F:FD:CA:AD:D8:32:68:A4:13:CC:EA:7A:67
      	 SHA256: 85:7F:D5:4A:69:80:3B:5B:86:27:99:A7:97:B8:E4:E8:7D:6F:D1:53:08:D8:7A:BA:A7:0A:7A:96:F3:6B:98:81

      The Owner entry is the Subject DN. The format used to enter the Subject DN depends on your platform. The string above could also be represented as;

      Owner: `CN=localhost,\ OU=broker,\ O=Unknown,\ L=Unknown,\ ST=Unknown,\ C=Unknown`
  4. Enable certificate-based authentication for the broker’s console.

    1. Open the <broker_instance_dir>/etc/login.config configuration file. Add the certificate login module and reference the user and roles properties files. For example:

      activemq {
          org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule
              debug=true
              org.apache.activemq.jaas.textfiledn.user="artemis-users.properties"
              org.apache.activemq.jaas.textfiledn.role="artemis-roles.properties";
      };
      org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule
      The implementation class.
      org.apache.activemq.jaas.textfiledn.user
      Specifies the location of the user properties file relative to the directory that contains the login configuration file.
      org.apache.activemq.jaas.textfiledn.role

      Specifies the properties file that maps users to defined roles for the login module implementation.

      Note

      If you change the default name of the certificate login module configuration in the <broker_instance_dir>/etc/login.config file, you must update the value of the -dhawtio.realm argument in the <broker_instance_dir>/etc/artemis.profile file to match the new name. The default name is activemq.

    2. Open the <broker_instance_dir>/etc/artemis-users.properties file. Create a mapping between client certificates and broker users by adding the Subject DNS that you obtained from each client certificate to a broker user. For example:

      user1=CN=user1,O=Progress,C=US
      user2=CN=user2,O=Progress,C=US

      In this example, the user1 broker user is mapped to the client certificate that has a Subject Distinguished Name of CN=user1,O=Progress,C=US Subject DN. After you create a mapping between a client certificate and a broker user, the broker can authenticate the user by using the certificate.

    3. Open the <broker_instance_dir>/etc/artemis-roles.properties file. Grant users permission to log in to the console by adding them to the role that is specified for the HAWTIO_ROLE variable in the <broker_instance_dir>/etc/artemis.profile file. The default value of the HAWTIO_ROLE variable is amq. For example:

      amq=user1, user2
  5. Configure the following recommended security properties for the HTTPS protocol.

    1. Open the <broker_instance_dir>/etc/artemis.profile file.
    2. Set the hawtio.http.strictTransportSecurity property to allow only HTTPS requests to the AMQ Management Console and to convert any HTTP requests to HTTPS. For example:

      hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
    3. Set the hawtio.http.publicKeyPins property to instruct the web browser to associate a specific cryptographic public key with the AMQ Management Console to decrease the risk of “man-in-the-middle” attacks using forged certificates. For example:

      hawtio.http.publicKeyPins = pin-sha256="..."; max-age=5184000; includeSubDomains

If requests to the AMQ Management Console go through a proxy server, you can configure the AMQ Broker embedded web server, which hosts AMQ Management Console, to handle X-Forwarded headers. This allows the AMQ Management Console to correctly identify the protocols in use when it is accessed behind a proxy server.

For example, the proxy can expose AMQ Management Console using HTTPS, and the AMQ Management Console, which uses HTTP, can identify from the X-Forwarded header that the connection between the browser and the proxy uses HTTPS and switch to HTTPS to serve browser requests.

Procedure

  1. Open the <broker_instance_dir>/etc/bootstrap.xml file.
  2. In the <web> element, add the customizer attribute with a value of org.eclipse.jetty.server.ForwardedRequestCustomizer. For example:

    <web path="web" customizer="org.eclipse.jetty.server.ForwardedRequestCustomizer">
    ..
    </web>
  3. Save the bootstrap.xml file.
  4. Start or restart the broker by entering the following command:

    • On Linux: <broker_instance_dir>/bin/artemis run
    • On Windows: <broker_instance_dir>\bin\artemis-service.exe start

4.5. Manage brokers using AMQ Management Console

View broker status and manage resources like connections, addresses, and queues using the AMQ Management Console.

You can view configuration details, status, connections, and runtime metrics for your broker from the Artemis menu in the console.

To see how the broker is configured, in the left menu, click Artemis.

In the main pane, the following tabs are available:

Status

Displays information about the current status of the broker, such as version information, uptime and the high availability policy deployed. Also displays the amount of address memory that the broker is currently using. The graph shows this value as a proportion of the global-max-size configuration parameter.

Figure 4.1. Status tab

*Status* tab
Connections
Displays information about broker connections, including client, cluster, and bridge connections.
Sessions
Displays information about all sessions currently open on the broker.
Consumers
Displays information about all consumers currently open on the broker.
Producers
Displays information about producers currently open on the broker.
Addresses
Displays information about addresses on the broker. This includes internal addresses, such as store-and-forward addresses.
Queues
Displays information about queues on the broker. This includes internal queues, such as store-and-forward queues.
Broker diagram
Displays a diagram of the cluster topology. This includes all brokers in the cluster and any addresses and queues on the local broker.

4.5.2. View the broker diagram

You can visualize your cluster topology, including brokers, addresses, queues, and clients, by using the broker diagram.

Procedure

  1. In the left menu, click Artemis.
  2. In the main pane, click the Broker Diagram tab.

    The console displays a diagram of the cluster topology. This includes all brokers in the cluster and any addresses and queues on the local broker, as shown in the figure.

    Figure 4.2. Broker diagram tab

    *Broker diagram* tab
  3. To change the items displayed in the diagram, in the Node options list, select the checkboxes for the items you want to display.
  4. To show attributes for the local broker or an address or queue that is connected to it, click that node in the diagram. For example, the following figure shows a diagram that also includes attributes for the local broker.

    Figure 4.3. Broker diagram tab, including attributes

    *Broker diagram* tab

4.5.3. View configured acceptors

Inspect the attributes and operations of configured acceptors to understand how the broker listens for connections.

Procedure

  1. In the left menu, click Artemis JMX.
  2. In the folder tree, click acceptors.
  3. To view details about how an acceptor is configured, click the acceptor.

    The console shows the acceptor attributes on the Attributes tab and the operations you can execute for the acceptor on the Operations tab.

    The following examples shows the attributes for the amqp acceptor.

    Figure 4.4. AMQP acceptor attributes

    AMQP acceptor attributes
  4. To see complete details for an attribute, click the attribute. An additional pane opens to show the details.
  5. To execute an operation on the acceptor, click the Operations tab, expand the operation and click the Execute button.

4.5.4. Manage addresses and queues

You can create, configure, and delete addresses and queues to manage messaging endpoints within the broker configuration.

An address represents a messaging endpoint. Within the configuration, a typical address is given a unique name.

A queue is associated with an address. There can be multiple queues per address. Once an incoming message is matched to an address, the message is sent on to one or more of its queues, depending on the routing type configured. Queues can be automatically created and deleted.

4.5.4.1. Create a new address

You create new addresses by specifying a unique name and a routing type. A routing type determines how messages are sent to the queues associated with an address.

Addresses can be configured with two different routing types.

If you want your messages routed to…

Use this routing type…

A single queue within the matching address, in a point-to-point manner.

Anycast

Every queue within the matching address, in a publish-subscribe manner.

Multicast

You can create and configure addresses and queues, and then delete them when they are no longer in use.

Procedure

  1. In the left menu, click Artemis.
  2. In the main pane, click the Addresses tab.
  3. Click Create Address.

    The Create Address dialog is displayed.

    Figure 4.5. Create Address dialog

    AMQ Management Console Create Address
  4. Complete the following fields:

    Address Name
    The routing name of the address.
    Routing type

    Select one of the following options:

    • Multicast: Messages sent to the address are distributed to all subscribers in a publish-subscribe manner.
    • Anycast: Messages sent to this address are distributed to only one subscriber in a point-to-point manner.
  5. Click Create Address.

4.5.4.2. Send messages to an address

Send messages to an address in AMQ Management Console to test message routing or verify that consumers receive expected content.

Procedure

  1. In the left menu, click Artemis.
  2. In the main pane, click the Addresses tab.
  3. Click the three-dot icon for the selected address.
  4. Click Send Message.

    The Send Message to Address <address name> dialog is displayed.

    Figure 4.6. Send Message to Address

    AMQ Management Console Send Message
  5. By default messages are sent using the credentials that you used to log in to AMQ Management Console. If you want to use different credentials, clear the Use Current Logged in User checkbox and specify values in the Username and Password fields, which are displayed after you clear the checkbox.
  6. If necessary, click the Add Header button to add message header information.
  7. Enter the message body.
  8. In the Format drop-down menu, select an option for the format of the message body, and then click Format. The message body is formatted in a human-readable style for the format you selected.
  9. Click Send.

    The message is sent.

  10. To send additional messages, change any of the information you entered, and then click Send.

4.5.4.3. Create a new queue

Create queues bound to specific addresses to enable message delivery to consumers.

Prerequisites

Procedure

  1. In the left menu, click Artemis.
  2. In the main pane, click the Addresses tab.
  3. Click the three-dot icon for the address to which you want to bind the queue.
  4. Click Create Queue.

    The Create Queue on Address <address name> dialog is displayed

    Figure 4.7. Create Queue on Address dialog

    AMQ Management Console Create Queue
  5. Complete the following fields:

    Queue name
    A unique name for the queue.
    Routing Type

    Select one of the following options:

    • Multicast: Messages sent to the parent address are distributed to all queues bound to the address.
    • Anycast: Only one queue bound to the parent address receives a copy of the message. Messages are distributed evenly among all of the queues bound to the address.
    Durable
    If you select this option, the queue and its messages are persistent.
    Filter
    The username to be used when connecting to the broker.
    Max Consumers
    The maximum number of consumers that can access the queue at a given time.
    Purge when no Consumers
    If selected, the queue is purged when no consumers are connected.
  6. Click Create Queue.

4.5.4.4. Check the status of a queue

View real-time charts of queue status to monitor message throughput and identify potential bottlenecks.

Procedure

  1. In the left menu, click Artemis JMX.
  2. In the folder tree, navigate to a queue.
  3. Click the Chart tab.

    The console displays a chart that shows real-time data for the queue attributes.

    Figure 4.8. Chart tab for a queue

    Chart tab for a queue
    Note

    To view a chart for multiple queues on an address, select the anycast or multicast folder that contains the queues.

  4. By default, all attributes for a queue are displayed on the chart. If necessary, change the list of attributes displayed on the chart:

    1. Click Edit watches.
    2. On the Watched attributes list, select the checkbox beside each attribute that you do not want to include in the chart.
    3. Click the right arrow icon to remove the selected attributes from the chart.
    4. Click Close.

4.5.4.5. Browse messages in a queue

Browse the messages in a queue to displays all of the messages present. You can also filter and sort the list of messages to find specific messages.

  1. In the left menu, click Artemis.
  2. In the main pane, click the Queues tab.
  3. Click the three-dot icon for the queue that you want to browse.
  4. Click Browse Messages.

    The messages in the queue are displayed. By default, the first 200 messages are displayed.

    Figure 4.9. Browse Queue dialog

    Browse Queue page
  5. To view the content of a message, click the three-dot icon for the message and click View.

    You can view the message body, header and properties.

4.5.4.6. Send messages to a queue

Send messages directly to a queue in AMQ Management Console to test consumer processing or verify message delivery.

Procedure

  1. In the left menu, click Artemis.
  2. In the main pane, click the Queues tab.
  3. Click the three-dot icon for the queue to which you want to send a message .
  4. Click Send Message.

    The Send Message to Queue <queue name> dialog is displayed

    Figure 4.10. Send Message to Queue dialog

    Send Message to a Queue
  5. By default messages are sent using the credentials that you used to log in to AMQ Management Console. If you want to use different credentials, clear the Use Current Logged in User checkbox and specify values in the Username and Password fields, which are displayed after you clear the checkbox.
  6. If necessary, click the Add Header button to add message header information.
  7. Enter the message body.
  8. In the Format drop-down menu, select an option for the format of the message body, and then click Format. The message body is formatted in a human-readable style for the format you selected.
  9. Click Send.
  10. To send additional messages, change any of the information you entered, and then click Send.

4.5.4.7. Resend messages to a queue

Resend previously delivered messages to a queue in AMQ Management Console to retry failed processing or reproduce an issue.

Procedure

  1. Browse for the message you want to resend.
  2. Click the three-dot icon for the message that you want to resend.
  3. Click Resend.

    The Resend Message dialog is displayed.

  4. Update the message header and body as needed, and then click Send.

4.5.4.8. Move messages to a different queue

Move messages from one queue to another in AMQ Management Console to reroute misdelivered messages or redistribute workload.

Procedure

  1. Browse for the messages you want to move.
  2. Click the checkbox next to each message that you want to move.
  3. Click Move.

    A confirmation dialog box is displayed.

  4. From the drop-down menu, select the name of the queue to which you want to move the messages. Click Confirm.

4.5.4.9. Delete messages or queues

Delete all messages in a queue to clear a backlog, or delete the queue entirely to remove an unused messaging endpoint.

Procedure

  1. In the left menu, click Artemis.
  2. In the main pane, click the Queues tab.
  3. Click the three-dot icon for the queue you want to purge or delete.

    1. To delete all the message in the selected queue without deleting the queue, click Purge.
    2. To delete all the messages and the queue itself, click Delete.
  4. In the confirmation dialog, click Confirm.
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat Documentation

Legal Notice

Theme

© 2026 Red Hat
Back to top