ServiceControl relies on a number of queues to function. The simplest way to configure these queues is to use ServiceControl Management or Powershell to install each ServiceControl instance.
These queues can be manually created before deploying a ServiceControl instance. The technique used will differ depending on the transport in use:
ServiceControl instances do not subscribe to any events, and so do not require any subscriptions to be configured.
Error instance
These queues are required by ServiceControl Error instances.
Failed messages queue
If an NServiceBus endpoint is unable to process a message, after the configured number of retries, it will forward a copy of the message to this queue. The ServiceControl error instance will read these messages and add them to its database.
- Default name: error
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | Write | Failed message configuration |
ServiceControl Error instance | Read | ServiceBus/ErrorQueue |
ServiceControl Audit instance | - | |
ServiceControl Monitoring instance | - |
Input queue
Each ServiceControl Error instance has an input queue which accepts control messages from NServiceBus endpoints, and from ServiceControl instances.
If the heartbeats or custom checks plugins are in use, they should be configured to send messages to this queue.
- Template:
<instance name> - Default name: Particular.ServiceControl
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | Write | Heartbeats plugin and Custom checks plugin |
ServiceControl Error instance | Read/Write | ServiceControl/InstanceName |
ServiceControl Audit instance | Write | ServiceControl.Audit/ServiceControlQueueAddress |
ServiceControl Monitoring instance | - |
The ServiceControl Audit instance sends a control message to the ServiceControl Error instance when it encounters an endpoint for the first time, and when a retried message has been audited to indicate that the retry was a success.
Error queue
If the ServiceControl Error instance cannot process a message, a copy is forwarded to this error queue.
- Template:
<instance name>. Error - Default name: Particular.ServiceControl.Error
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | - | |
ServiceControl Error instance | Read/Write | Based off of instance name |
ServiceControl Audit instance | - | |
ServiceControl Monitoring instance | - |
The ServiceControl Error instance includes a custom check to see if there are messages in this queue.
Staging queue
This queue is used by ServiceControl Error instances during the retry process.
- Template:
<instance name>. staging - Default name: Particular.ServiceControl.staging
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | - | |
ServiceControl Error instance | Read/Write | Based off of instance name |
ServiceControl Audit instance | - | |
ServiceControl Monitoring instance | - |
Failed messages forwarding queue
If configured to do so, the ServiceControl Error instance will forward a copy of every message it processes from the Failed messages queue.
- Template:
<failed messages queue>. log - Default name: error.log
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | - | |
ServiceControl Error instance | Write | ServiceBus/ErrorLogQueue |
ServiceControl Audit instance | - | |
ServiceControl Monitoring instance | - |
Endpoint instance input queues
During retry operations, the ServiceControl Error instance will forward messages back to the input queue of the endpoint that failed to process it.
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | Read | Endpoint name |
ServiceControl Error instance | Write | Configured via the NServiceBus. header on failed messages |
ServiceControl Audit instance | - | |
ServiceControl Monitoring instance | - |
Audit instance
These queues are required by ServiceControl Audit instances.
Audit queue
If configured to do so, NServiceBus endpoints send a copy of every message processed to the audit queue and a ServiceControl Audit instance reads them.
If the Saga Audit plugin is used, it should be configured to send messages to the audit queue as well.
- Default name: audit
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | Write | Audit configuration and Saga Audit plugin |
ServiceControl Error instance | - | |
ServiceControl Audit instance | Read | ServiceBus/AuditQueue |
ServiceControl Monitoring instance | - |
Input queue
Each ServiceControl Audit instance includes an input queue. This is currently not used but is required for the ServiceControl Audit instance to run.
- Template:
<instance name> - Default value: Particular.ServiceControl.Audit
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | - | |
ServiceControl Error instance | - | |
ServiceControl Audit instance | Read | ServiceControl.Audit/InstanceName |
ServiceControl Monitoring instance | - |
Error queue
If a ServiceControl Audit instance is unable to process a message, it will forward it to the configured error queue.
- Template:
<instance name>. Error - Default name: Particular.ServiceControl.Audit.Error
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | - | |
ServiceControl Error instance | - | |
ServiceControl Audit instance | Write | Based off of instance name |
ServiceControl Monitoring instance | - |
Audit forwarding queue
If Audit Forwarding is enabled, after the ServiceControl Audit instance processes a message from the audit queue, it will forward a copy to this queue.
- Template:
<audit queue name>. log - Default name: audit.log
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | - | |
ServiceControl Error instance | - | |
ServiceControl Audit instance | Write | ServiceBus/AuditLogQueue |
ServiceControl Monitoring instance | - |
Monitoring instance
These queues are required by ServiceControl Monitoring instances.
Input queue
Endpoints send monitoring information to the monitoring queue and the monitoring instance reads them.
- Template:
<instance name> - Default value: Particular.Monitoring
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | Write | Monitoring plugin |
ServiceControl Error instance | - | |
ServiceControl Audit instance | - | |
ServiceControl Monitoring instance | Read | Monitoring/InstanceName |
Error queue
When the ServiceControl Monitoring instance cannot process a message it is forwarded to this queue.
- Default name: error
- Configure via:
Component | Access requirements | Configuration |
---|---|---|
NServiceBus endpoints | - | |
ServiceControl Error instance | - | |
ServiceControl Audit instance | - | |
ServiceControl Monitoring instance | Write | Monitoring/ErrorQueue |