Nav

Setting Up MMC-Mule Runtime Communications

This page covers:

  • How to register or unregister a Mule runtime server in MMC

  • How to configure communication settings between Mule runtime server and MMC

Contents:

Assumptions

This document assumes that you are familiar with the basic Architecture of the Mule Management Console, and that you have installed either the trial or production version of the Management Console.

MMC-Server Communications

The Mule Management Console is a Web application that you can use to monitor and manage one or more Mule runtimes (formerly called Mule ESB Servers), clusters, and applications. The Management Console communicates with Mule runtime servers via the MMC agent installed in each Mule runtime server. In order for communication between MMC and a Mule runtime server to take place, you need to register the server in the Management Console.

Communication between MMC and a Mule runtime server begins over HTTP, but after the initial handshake and authentication, the HTTP connection is dropped and a new HTTPS connection is opened.

The files tls-default.conf and tls-fips140-2.conf included in the conf folder of the Mule allow you to fine-tune the protocols that can be used to set up the HTTPS connection.

Registering Mule Runtimes with MMC

Each Mule runtime can only be registered with one MMC, but each MMC can manage an unlimited number of Mule runtimes.

The trial version of Mule Enterprise Console contains a bundled MMC and a Mule Enterprise Edition runtime. In the trial version, the Mule Enterprise Edition runtime is automatically registered to the bundled MMC. However, if you wish to register more Mule runtimes with the bundled MMC, you will have to do so manually.

When you run the production version of MMC for the first time, it will attempt to detect any Mule runtimes on the network, but will not try to pair with any server it finds. You must manually register your Mule runtime.

To pair the MMC with a Mule instance, you provide MMC with the URL of the Mule agent listening on the the Mule runtime. The default port is 7777, and the path is mmc-support. So, if you wish to register a Mule runtime on host 16.172.1.25, the URL would be http://16.172.1.25:7777/mmc-support. When you provide this URL to MMC, the Management Console will attempt to pair with the Mule agent in the specified URL, then report success or failure.

To register a Mule runtime with MMC, follow these steps:

  1. Go to the Servers tab.

  2. In the left-hand pane is a list of servers divided by groups. If MMC has found any active servers, it will indicate the number of servers found in the Unregistered heading, as shown below.

    unreg_servers

  3. Click Unregistered. MMC will display a list of unregistered servers it has found, if any, including each server’s host and port.

    unreg_servers_list

  4. If the server you wish to register is on this list, click the checkbox next to the server name (see location of the mouse pointer above), then click Register in the top right corner. MMC will attempt to register the server, and will report success or failure.

  5. If the server you wish to register is not on the Unregistered Servers list, click New Server in the top right corner.

    add_server_manually

  6. Enter your server’s name and URL manually, then click Add. MMC will attempt to register the server, and will report success or failure.

After you have registered your servers, click All in the left servers group pane to go to the All Servers list, where you should see all the servers that MMC has detected. Additionally, all registered servers will display their status (a red indicator for stopped servers; green for running).

reg_servers_list

Registering a Mule runtime Server to a New MMC

Each Mule runtime server can only be registered to one MMC at a time. If you want to register a Mule runtime server to a new MMC, you must first unregister it in the MMC that the server is currently registered with. You can do this either in the MMC itself or on the server’s configuration files. Both methods are explained below.

Unregistering a Mule Runtime

If the server is part of a cluster, you must disband the cluster before you unregister the server. See Creating or Disbanding a Cluster for details.

Unregistering a Server Via the Registered MMC

  1. In the MMC where the server is registered, obtain a list of servers that includes the server you wish to unregister, for example by clicking All in the server groups pane.

  2. Select the desired server by clicking the checkbox next to the server name.

  3. Click Remove, then Unregister Server(s). MMC will ask for confirmation; click Yes.

The server has been unregistered; you can now register it in another Management Console.

Unregistering a Server Via the Server’s Configuration Files

It is possible that you are not able to unregister a Mule server via the MMC, for example if the MMC has been undeployed and is no longer available. In this case, follow the steps below.

  1. Ensure that the runtime is not running.

  2. Go to the directory $MULE_HOME/.mule/.agent. This directory contains Mule runtime-MMC pairing information.

  3. Find and delete the file truststore.jks.

After you delete the file, you can register the Mule runtime server to any instance of MMC, following the steps outlined [Registering Mule runtime with MMC]. When you register the server, a new truststore.jks will be created.

Changing the Default runtime Agent Port

A Mule runtime communicates with MMC using its embedded agent. By default, the agent is enabled and listening on port 7777. You can change the port with the -Dmule.mmc.bind.port parameter for the Java Virtual Machine (JVM). You can do this in two ways, which are listed below.

On the Command Line on Mule Startup

If starting the Mule runtime from the provided startup script, you can include the port number parameter as a parameter to the startup command as shown below. If running in background, include the parameter after start.


          
       
1
mule@host:/opt/mule-3.4.1/bin$ ./mule start -M-Dmule.mmc.bind.port=7783

(If you wish to use more than one parameter, include all parameters as a list separated by whitespace.)

On the Configuration File

Include your parameters in the configuration file $MULE_HOME/conf/wrapper.conf. The distribution includes this file with comments; you can edit this file or add to it as needed.

You must include the agent port parameter as a java.additional parameter. These parameters are defined in the wrapper.conf file in the form wrapper.java.additional.<number>=<name>=<value>, such as wrapper.java.additional.3=-Djava.net.preferIPv4Stack=TRUE.

To add your desired parameter, find the last added additional parameter, which will have the highest number. Then, add your parameter with the consecutive number that equals the highest number + 1.

For example, if the number of the last additional parameter is 3, add:


          
       
1
wrapper.java.additional.4=-Dmule.mmc.bind.port=<number>

If you wish to include a port range, letting the Mule runtime bind to the first available port, use <low port>-<high port>, e.g. 7780-7785. Note: MMC registers the Mule runtime on a particular port number. If the Mule runtime restarts and binds to a different port number in the available range, the Mule runtime will no longer be able to connect to MMC. You will have to unregister then register the Mule runtime using the new port number.

If you wish to disable the agent on the Mule instance, use the -Dmule.agent.enabled=<boolean> parameter.

For more information about the wrapper.conf file, consult the Java Service Wrapper online documentation for the file.

Changing the Default Port For MMC

Like all Web apps, the Mule Management Console listens for incoming HTTP connections. If you deployed the MMC in a Web application server, you will access MMC via the Web app server’s listening port, for example 8080 by default in Tomcat. In that case, the only way to change MMC’s listening port is to change your Web app server’s listening port.

If you run the trial version of MMC, MMC is running as an app deployed by the Mule runtime it is bundled with. By default it listens on port 8585. To modify MMC’s listening port, follow the steps below.

  1. Ensure that the Mule runtime is not running.

  2. Open the file $MULE_HOME/apps/mmc/mule-config.xml for editing.

  3. Find the line that reads:

    
                
             
    1
    
    <jetty:webapps port="${mule.console.bind.port:8585}"
  4. Change the default port of 8585 to your desired value, then save the file.

See Also