Configuring a Cluster for Cherwell Message Queue Service

Use a RabbitMQ cluster to handle large service loads for a Cherwell server farm. This scenario should only be used for systems where the impact on CSM services, such as the Automation Process Service, is heavy on an ongoing basis.

For more information about using a cluster with the Cherwell Message Queue Service, see Scaling Scenarios.

For guidance on using clusters with RabbitMQ, which powers the Cherwell Message Queue Service, see the RabbitMQ Clustering Guide.

To configure a cluster for the Cherwell Message Queue Service:

  1. Run the CSM server installer on each machine that will host an instance of the Cherwell Message Queue Service.
  2. Verify that each instance can be contacted by a host name rather than an IP address.
  3. Select one Cherwell Message Queue Service instance that will serve as the main node that others will connect to.
  4. Run the rabbitmqctl.bat cluster_status command to verify that each node resolves to the correct hostname. If they do not, uninstall the Cherwell Server, including RabbitMQ and Erlang, rename the machine, and then reinstall.
  5. On the server that you chose as the main node, copy the erlang.cookie.file located here: C:\windows\system32\config\systemprofile and possibly C:\Users\Administrator.
  6. Paste the erlang.cookie.file file to the same two locations on the other cluster nodes, and then restart the Cherwell Message Queue Service on each machine.
  7. Reset the RabbitMQ node on each instance so it can join the cluster.
    1. On each server, navigate to the RabbitMQ installation folder, which is typically C:\Program Files\Cherwell Service Management\CMQS\rabbitmq_server-3.7.14\sbin).
    2. Open a command prompt, and run:
      • rabbitmqctl.bat stop_app
      • rabbitmqctl.bat reset
      • rabbitmqctl.bat join_cluster <master rabbit node>
      • Rabbitmqctl.bat start_app
  8. Open the RabbitMQ management interface and verify the nodes are available in the cluster. See Monitor Queues from the RabbitMQ Management Interface.

To remove a node from a cluster, run .\rabbitmqctl -n rabbit@MAIN-NODE-NAME forget_cluster_node rabbit@NODE-NAME.