Skip to content

Latest commit

 

History

History
205 lines (144 loc) · 14.1 KB

queues.md

File metadata and controls

205 lines (144 loc) · 14.1 KB
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.

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 Instance name
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.

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 -

Note

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.FailedQ 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/InternalQueueName
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/EndpointName

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