Mule Management Console, or MMC, is a centralized management and monitoring function for all of our on-premise Mule ESB enterprise deployments. That includes running as a standalone instance, as a cluster, or embedded in application servers.

MMC as an enterprise management and monitoring tool is designed specifically for Mule on-premises instances. It provides all the functionality for managing, monitoring, and running Mule on-premises servers, Mule clusters, deployed applications within Mule servers, and the flows within those applications. Another important feature is that it also provides ways of looking at specific transactions through pre-defined business events, as well as transactions in flight.

MMC by default supports internal derby databases to persist environment and transaction data. If we start our MMC application under the Apache Tomcat server, we can see under the bin folder is a folder named mmc-data that is created where it stores all the MMC-related data to support all the MMC functionalities:

If we enter into that folder, we will see the derby database is created with all other folders:

MC versions 3.4.2 and later support the external database, which means that we can connect to any external remote database instead of using our default internal derby database. It is very easy to connect our MMC with an external database and in this post we are going to demonstrate this in five simple steps.

Currently, it can be connected with any of the following databases other than derby:

Externalizing With the MS-SQL Server

Before we start, we should delete the mmc-data folder from <MMC_HOME> /bin folder path after taking a backup.

<MMC_HOME> is the directory where MMC is installed.

Step 1

The first step is simple. Since we are connecting our MMC with the MS-SQL Server, we need the driver and copy it into the <Mule install path>/apps/mmc/webapps/mmc/WEB-INF/lib folder:

Step 2

In the folder <MMC_HOME>/WEB-INF, we need to configure our web.xml. By default, in the spring.profiles.active section, we will see the parameter string as env-derby, which is pointing for default derby configuration:

We need to replace it with env-mssql as follows:

We also need to delete the string tracking-h2 and replace it with tracking-mssql to Persist Transaction Data to MS-SQL Server.

Step 3

We will be creating a database called MMC_DB_3.8 in our MS-SQL Server that will be connected to our MMC:

Step 4

In the directory <MMC_HOME>/WEB-INF/classes/META-INF/databases, we need to locate the file mmc-mssql.properties and do the editing for env.username, env.password, env.host, env.port and env.dbschema:

Step 5

The final stage will be in directory <MMC_HOME>/WEB-INF/classes/quartz. There is an .sql file called tables_sqlServer.sql; we execute that in SQL DB server:

This will create the required tables in our database.

That’s it! We are done.

If we start our Apache Tomcat server and browse the MMC portal in a browser, we will see the application has started successfully:

If we go back to bin folder, we will see that the mmc-data folder is created and contains all of the MMC-related data:

If we browse into the folder we will find no internal database folder created as we have already configured it with our MS-SQL Server and hence leaving only repository and workspace folder:-

We can see how easy it is to configure the MMC application with an external MS-SQL server database. I hope you like the post. Please do share your feedback and experiences below.