title | summary | reviewed | component |
---|---|---|---|
ServiceControl Queues |
A breakdown of all of the queues required by each ServiceControl instance |
2024-04-02 |
ServiceControl |
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:
Note
ServiceControl instances do not subscribe to any events, and so do not require any subscriptions to be configured.
These queues are required by ServiceControl Error instances.
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 | - |
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 | - |
Note
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.
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 | - |
Note
The ServiceControl Error instance includes a custom check to see if there are messages in this 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 | - |
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 | - |
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.FailedQ header on failed messages |
ServiceControl Audit instance | - | |
ServiceControl Monitoring instance | - |
These queues are required by ServiceControl Audit instances.
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 | - |
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 | - |
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 | - |
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 | - |
These queues are required by ServiceControl Monitoring instances.
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 |
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 |