This Article Applies From:
DeMeter
26.1.1


Introduction

DeMeter provides a reliable and efficient export mechanism based on AMQP.

The Data Flow exporter enables DeMeter to transmit tightening results to a RabbitMQ message broker, thereby making them available to any client compatible with AMQP. This asynchronous communication system guarantees a dependable method for exporting results without requiring direct access to the DeMeter database.

This document details the procedures for installing and configuring the AMQP integration for DeMeter, including software prerequisites, RabbitMQ installation, broker setup, DeMeter configuration, and integration verification.


TABLE OF CONTENTS

Introduction​

1 - Pre- requisites  

1.1 - Generic requirements  

1.2 - Ports configuration  

2 - Communication overview

2.1 Overview

2.2 Communication flow

3 - Software requirements  

3.1 DeMeter  

3.2 RabbitMQ  

3.3 Erlang/OTP

4 - Installation process 

4.1 Install Erlang 

4.2.1 Enable RabbitMQ Management Interface  

4.2.2 Accessing the Management Interface

4.2.3 Default Credentials  

4.2.4 Configuring an Administrative User  

5 - Configuring DeMeter  

5.1 Copy the configuration files

5.2 Enable DataFlowExporter 

5.3 Configure AMQP Endpoint  

5.4 Configure a secure connection (optional)

6 - Exporting data  

6.1 Queue names  

6.2 Customizing queue names 

7 - Troubleshooting  

7.1 Unable to perform an operation on node  

7.2 Unable to access the Management Interface 

7.3 No messages appearing in RabbitMQ  


1 - Pre- requisites  


1.1 - Generic requirements  

Prior to setting up the AMQP integration, confirm that the following prerequisites are satisfied:

Software Requirements
ComponentRecommended Version
DeMeter26.1.1 or newer
RabbitMQ4.2.5
Erlang/OTP28.5

RabbitMQ depends on Erlang/OTP and cannot be installed or started without it. RabbitMQ 4.2.5 and Erlang/OTP 28.5 are the versions validated during DeMeter AMQP integration testing.


1.2 - Ports configuration  

PortPurpose
5672AMQP communication
15672RabbitMQ Management Interface
5671AMQPS communication
​15671RabbitMQ Management Interface over SSL/TLS

If RabbitMQ is set up on a different server, these ports need to be open between DeMeter and the broker

2 - Communication overview


2.1 Overview

DeMeter supports exporting tightening results using the Advanced Message Queuing Protocol (AMQP). AMQP is an open messaging standard that enables reliable, asynchronous communication between applications using a message broker.

Rather than communicating directly with another application, DeMeter publishes messages to a RabbitMQ broker. The broker stores each message in a queue, where it can be consumed independently by external applications or custom integrations.

This architecture provides several benefits:

  • Reliable message delivery
  • Decoupled system integration
  • Simplified communication between applications


2.2 Communication flow

The AMQP communication process follows these steps:

  1. A tightening operation is completed and result is sent to the DeMeter.
  2. DeMeter creates an AMQP message containing the tightening result.
  3. The message is published to the RabbitMQ broker.
  4. RabbitMQ receives the message and stores it in the queue defined within setings. (default: DeMeter.TighteningResults)
  5. External applications consume messages from the queue whenever they are ready.


3 - Software requirements  


The following software versions are required for a supported installation.


3.1 DeMeter  

AMQP functionality is available starting with DeMeter version 26.1.1.

Earlier versions do not support AMQP export.


3.2 RabbitMQ  

The recommended RabbitMQ version is 4.2.5.

This version has been fully tested with DeMeter and is the only version officially validated by Desoutter.

Although newer RabbitMQ versions may also operate correctly, they may require some additional configuration steps. Only version 4.2.5 is officially recommended and guaranteed to work.


3.3 Erlang/OTP

RabbitMQ requires Erlang/OTP to be installed before the broker itself.

The supported and tested version is:

Erlang/OTP 28.5

Newer releases should work but might need some additional configuration.


4 - Installation process 


4.1 Install Erlang 

Download and install Erlang/OTP 28.5 or a newer version. https://www.erlang.org/

RabbitMQ depends on Erlang/OTP and cannot be installed or started without it.


4.2 Install RabbitMQ Server  

Install RabbitMQ Server 4.2.5. https://www.rabbitmq.com/

During installation:

  • the RabbitMQ Windows Service is created,
  • the service is configured to start automatically,
  • the default AMQP listener is enabled on TCP port 5672.

After installation, verify that the RabbitMQ service is running.

4.2.1 Enable RabbitMQ Management Interface  

RabbitMQ provides a web-based management interface that can be used to monitor queues, connections, users, message rates, and broker health.

Before executing any RabbitMQ administration commands, open a Command Prompt as Administrator and navigate to the RabbitMQ sbin directory.

For a default RabbitMQ 4.2.5 installation, the location is:

C:\Program Files\RabbitMQ Server\rabbitmq_server-4.2.5\sbin

You can navigate to the directory using:

cd C:\Program Files\RabbitMQ Server\rabbitmq_server-4.2.5\sbin

Then to enable the Management Plugin, run the following command:

rabbitmq-plugins.bat enable rabbitmq_management

After the command completes successfully, RabbitMQ will enable the management plugin and restart the required components automatically.

4.2.2 Accessing the Management Interface

Once enabled, open a web browser and navigate to:

http://localhost:15672

If RabbitMQ is installed on a remote server, replace localhost with the server hostname or IP address:

http://<ServerName>:15672

4.2.3 Default Credentials  

For a fresh installation, RabbitMQ provides the following default credentials:

Username: guest
Password: guest

The default guest account should only be used during initial setup. For production environments, it is strongly recommended to create a dedicated administrative user and remove the default guest account once configuration has been completed.

After logging in, you should see the RabbitMQ Management Dashboard, which can be used to manage users, queues, exchanges, connections, and monitor AMQP traffic.

4.2.4 Configuring an Administrative User  

The default guest account is intended primarily for initial setup and local access. For production environments, it is recommended to create a dedicated administrative user and remove the default guest account.


To do so, open Command Prompt as Administrator, navigate to RabbitMQ sbin directory and execute the following commands:

Create a new user:
Rabbitmqctl.bat add_user user password

Grant administrator privileges:
Rabbitmqctl.bat set_user_tags user administrator

Grant permissions for the default virtual host:
Rabbitmqctl.bat set_permissions -p / user “.*” “.*” “.*”

If administrative account has been succesfully created, we can proceed with removing the default guest account:

Rabbitmqctl.bat delete_user guest

5 - Configuring DeMeter  


Before DeMeter can publish messages to RabbitMQ, the DataFlow exporter must be enabled within the application configuration.


5.1 Copy the configuration files

For new installations, the default configuration file is located at:

C:\Program Files\Desoutter\DeMeter\appsettings.json

Copy this file to:

C:\ProgramData\Desoutter\DeMeter\API\

The copy stored in ProgramData is the file that should be modified.

5.2 Enable DataFlowExporter 

Open appsettings.json in your prefered a text editor:

Locate the DataFlowExporter section – it should appear at the bottom of the file.

By default, the exporter is turned off since the IsEnabled property is commented out.

For example:

"DataFlowExporter": {
// "IsEnabled": false,

Remove the leading // and modify the value to:

"DataFlowExporter": {
"IsEnabled": true,

Furthermore, repeat the process for this section:

// "IsTighteningResults": false

so it should be updated to look like this:

"IsTighteningResults": true

If desired, you can also set up Cycle Snapshots to be transmitted to the AMQP broker. To do this, follow the previous steps for the next section:

// "IsCycles": false

so it should appear as follows:

"IsCycles": true

After enabling this options, DeMeter initializes the DataFlow exporter during startup.

5.3 Configure AMQP Endpoint  

Inside the DataFlowExporter section, locate the nested EndPointAMQP object.

The object itself is present by default, while its configuration parameters are commented out.

To establish a connection with RabbitMQ, uncomment and configure at least the following properties:

ParameterDescription
HostRabbitMQ server hostname or IP address
PortRabbitMQ AMQP port (typically 5672)
UserRabbitMQ username
PasswordRabbitMQ user password

By default, RabbitMQ requires a username and password to connect to the broker. However, if needed, it can be configured to accept connections without authentication.

Remove the leading // from each property and specify values appropriate for your environment.


5.4 Configure a secure connection (optional) 

If TLS encryption is required, uncomment the following properties:

ParameterDescription
CertificatePath to the client certificate (.pfx)
CertificatePasswordPassword protecting the certificate

Example:

"Certificate": "C:\\Certificates\\client.pfx",
"CertificatePassword": "********"

When enabled, DeMeter establishes a secure connection using the specified client certificate.

6 - Exporting data  


The AMQP exporter allows DeMeter to publish production data to a RabbitMQ broker, making it available to any AMQP-compatible consumer application. Once a connection to the broker has been established, DeMeter automatically creates the required queues if they do not already exist. No manual queue creation is required on the RabbitMQ server.

At the time of writing, DeMeter can publish the following data types:

  • Tightening Results
  • Cycles

6.1 Queue names  

Every operation that is completed produces an AMQP message which is dispatched to the respective RabbitMQ queue.

By default, DeMeter sends messages to the queue DeMeter.TighteningResults for Tightening Results and DeMeter.Cycles for Cycles.


If these queues are absent when DeMeter connects to RabbitMQ, DeMeter will automatically create them.


6.2 Customizing queue names 

It is possible to modify the standard queue names as specified in the DeMeter configuration.

Locate the EndPointAMQP section within the DataFlowExporter configuration and locate the following commented-out parameters:

// "TighteningResultQueue": "DeMeter.TighteningResults",
// "CyclesQueue": "DeMeter.Cycles"


To implement custom queue names:

  1. Eliminate the leading // from the parameters you wish to modify.
  2. Substitute the default values with the queue names that your environment necessitates.

7 - Troubleshooting  


7.1 Unable to perform an operation on node  

If you encounter an error similiar to the one below when running RabbitMQ administration commands:

C:\Program Files\RabbitMQ Server\rabbitmq_server-4.2.5\sbin>rabbitmqctl.bat add_user admin admin
Error: unable to perform an operation on node 'rabbit@<hostname>'
Please see diagnostics information and suggestions below.

The problem frequently arises from a discrepancy between the Erlang cookie employed by the RabbitMQ service and the Erlang cookie utilized by the currently logged-in Windows user.

Resolution

  1. Disable RabbitMQ if it is currently running.
  2. Locate the Erlang cookie utilized by the RabbitMQ Windows service:
C:\Windows\System32\config\systemprofile\.erlang.cookie

Copy the .erlang.cookie file into your user profile directory:

C:\Users\<Username>\
  • If a .erlang.cookie file already be present in the user profile directory, substitute it with the file obtained from systemprofile.
  • Verify that the file permissions permit access solely to the current user.
  • Launch a new Command Prompt as Administrator and attempt the RabbitMQ command again.


7.2 Unable to access the Management Interface 

Verify that:

  • the rabbitmq_management plugin is enabled,
  • RabbitMQ is running,
  • TCP port 15672 is accessible.


7.3 No messages appearing in RabbitMQ  

If no messages show up in RabbitMQ following a tightening operation or the completion of a cycle, please check the following:

  • Ensure that RabbitMQ is operational and that the RabbitMQ service has started successfully.
  • Confirm that the DataFlow exporter is activated in the DeMeter configuration:
  • Verify that the AMQP connection parameters are set up correctly:
    Host
    Port
    User
    Password
    TCP port 5672 must be accessible from DeMeter server
    Make sure that the data types you want to export are explicitly enabled (IsTighteningResults, IsCycles)