RabbitMQ/Erlang OTP Installation
Copy
RabbitMQ is an open-source message broker that provides extensible message queuing support. It is implemented using the Erlang OTP language.
The following steps outline the process of setting up RabbitMQ to use with Aras Innovator:
- Set up the RabbitMQ server.
- Install Erlang OTP.
- Install RabbitMQ.
- Configure Aras Innovator server nodes.
RabbitMQ should only be used in Aras Innovator clustered environments, as synchronizing cache across nodes is necessary only then.
A Windows Server 2019 server must be allocated to run the RabbitMQ services. The resources needed for this service will vary from customer to customer depending on the workload required to support the Aras Innovator cluster. The following section provides more guidance for determining the resource needs for a given RabbitMQ server: RabbitMQ Cluster Sizing and Other Considerations.
Alternatively, a RabbitMQ consultant can be consulted to provide guidance.
A dedicated RabbitMQ server is recommended. RabbitMQ must be installed on a non-HA node like an independent service machine. Do not install it on an Aras Innovator node.
Erlang/OTP is required to run RabbitMQ.
The following steps outline the process of installing the Erlang/OTP:
- Download Erlang / OTP 26.0.2 Windows 64-bit installer from the following site: {https://www.erlang.org/downloads}.
- Install Erlang/OTP 23 by following the instructions provided on the site.
The following steps outline the process of installing and setting up the RabbitMQ:
- Install and configure RabbitMQ using the RabbitMQ documentation{ https://www.rabbitmq.com/docs/install-windows}.
- Create an administrative user which will be used later in configuration.
- Create another administrative user account as follows:
- Go to the Admin tab
- Add a user
- Enter any specific name
- Enter any password & confirm password
- Set Admin from Tags
- Click on Add user
- Click on the Name of the added user
- Click on Set Permissions
- Click on the Admin tab & verify that the administrative user successfully added
- Record username and password for a later step
Go to http://localhost:15672 on the server where RabbitMQ is installed and log in with the Default credentials:
Username: guest
Password: guest
RabbitMQ should now be installed and verified.
The following steps outline the process of configuring Aras Innovator to use RabbitMQ in place of the default SQL Server invalidation broker:
- Open the InnovatorServerConfig.xml on the current Aras Innovator server node.
- Make the following changes:
- Original entry:
<Cacheinvalidation_broker_type="DatabaseDependency"/> - Deactivated (“commented out”) entry:
<!--Cacheinvalidation_broker_type="DatabaseDependency"/--> - %ARAS_RABBIT_HOST% - Host server that is hosting RabbitMQ
- %ARAS_RABBIT_USER% - Administrative RabbitMQ user (recently added administrative user)
- %ARAS_RABBIT_PASSWORD% - Administrative RabbitMQ password
- %ARAS_RABBIT_EXCHANGE% - Rabbit MQ Exchange on which messages will be sent
- %ARAS_RABBIT_HOST_PORT% - Port for messaging on RabbitMQ (Default is 5672)
- %ARAS_CACHE_DEPENDENCY% - Should be set to ‘MessageQueueDependency’
- Repeat steps 1 and 2 for all Aras Innovator server nodes.
- Once all nodes have been updated, restart IIS on all nodes. This will cause each node to be restarted with the updated configuration settings.
- Validate connections within RabbitMQ.
- new Exchange ('%ARAS_RABBIT_EXCHANGE%') should be created.
- Queues, Channels, and Connections should be created on the RabbitMQ page.
Turn off the current invalidation broker by commenting out its configuration entry:
Create a cache invalidation broker entry for the newly configured RabbitMQ server by adding the following entry (at the same XML level as the original entry):
<Cache RabbitServiceHost="%ARAS_RABBIT_HOST%" RabbitUser="%ARAS_RABBIT_USER%" RabbitPassword="%ARAS_RABBIT_PASSWORD%" RabbitExchange="%ARAS_RABBIT_EXCHANGE%" RabbitHostPort="%ARAS_RABBIT_HOST_PORT%" invalidation_broker_type="%ARAS_CACHE_DEPENDENCY%" />Substitute in the appropriate values:
For example:
<Cache RabbitServiceHost="192.168.201.71" RabbitUser="admin_44" RabbitPassword="admin_44" RabbitExchange="arasExchange_test” RabbitHostPort="5672" invalidation_broker_type="MessageQueueDependency” />Login to RabbitMQ server from one of the Aras Innovator nodes and go to http://{ip_of_server_where_RabbitMQ_is_installed}:15672 Login with the following credentials for the new administrative user:
User Name: %ARAS_RABBIT_USER%
Password: %ARAS_RABBIT_PASSWORD%