Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
Monitoring
Samples

ServiceControl Forwarding Log Queues

Audit and error queues

ServiceControl consumes messages from the audit and error queues and stores these messages locally in its own embedded database. These input queues names are specified at install time.

ServiceControl can also forward these messages to two log queues:

  • Error messages are optionally forwarded to the error log queue. Default: error.log.
  • Audit messages are optionally forwarded to the audit log queue. Default: audit.log.

This behavior can be set through ServiceControl Management.

Processing failures are not forwarded immediately

Failed imports are not forwarded to the error log queue immediately. These will be stored in ServiceControl as Failed Imports or in the error queue of the ServiceControl instance type. Messages are forwarded by ServiceControl only after it is successfully stored in its datebase.

If messages must be forwarded immediately, even if ServiceControl cannot process the messages, the solution is to invert the processing order. Failed messages should be sent to a process_errors queue. A custom process will read from the process_errors queue, then forward the messages to the error queue that ServiceControl will process.

The same can be done for audit messages.

Forwarding by ServiceControl:

"error" -> ServiceControl -> "error.log" -> Custom Processor

Forwarding by Custom Processor:

"error" -> Custom Processor -> "error.log" -> ServiceControl

This will prioritize the custom processor over ServiceControl for audit and error processing

Error and audit log queues

The log queues retain a copy of the original messages ingested by ServiceControl. The queues are not directly managed by ServiceControl and are meant as points of external integration.

If external integration is not required, it is strongly recommended to turn forwarding to log queues off. Otherwise, messages will accumulate unprocessed in the forwarding log queue(s) until storage resource (message count limits, messages size limit, available disk space) are exhausted. When this happens new messages cannot be added.

Last modified