AI agents: use the documentation index at llms.txt to locate machine-readable pages. This section is indexed by https://docs.particular.net/servicecontrol/llms.txt. The markdown version of this page is served as plain text. An MCP server at /mcp serves the same content via the search_docs and read_doc tools; it is read-only and needs no credentials. Markdown versions of documentation pages are available by appending .md to the page URL. Directory URLs use index.md. They are served as text/plain because some retrieval backends reject text/markdown.

Deploying ServiceControl to a Cluster

The following procedure is a high-level guide on how to deploy ServiceControl onto a fault-tolerant cluster using Windows Failover Clustering.

Infrastructure setup

  1. Create a Windows Failover Cluster,
  2. Create a Message Queuing role on the cluster
  3. Install ServiceControl on each node of the cluster.
  4. Add the ServiceControl Windows Service as a Generic Service resource to the MSMQ cluster role.
    1. Ensure it depends on the MSMQ role and the MSMQ network name
    2. After setting up the dependencies, check the "Use Network Name as computer name" option

Before bringing the service resource online, all of the required queues must be created and given the appropriate permissions manually in the cluster.

Database high availability

The internal ServiceControl RavenDB database must be located in a shared storage that is highly available and fault tolerant. Shared storage does not mean a network share, but a cluster storage that allows low latency and exclusive access. Access to the data should always be local, although physically that data could be stored on a SAN. When this disk is mounted, ServiceControl must be configured to use that location.

ServiceControl configuration

The following settings must be applied to all ServiceControl instances on every node in the cluster.

Configuration

The ServiceControl configuration must be customized by changing the following settings:

  • The database path needs to set to the path to the shared location of the database.
    • ServiceControl/DBPath for error instances
    • ServiceControl.Audit/DBPath for audit instances
  • The host name needs to be set to the MSMQ network name
    • ServiceControl/HostName for error instances
    • ServiceControl.Audit/HostName for audit instances
    • Monitoring/HttpHostName for monitoring instances
  • The ServiceControl/RemoteInstances setting should use the MSMQ network name to refer to the audit instance

See Customizing ServiceControl Configuration for more information on each setting.

Related Articles