Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
Monitoring
Samples

Transport configuration

Component: ServiceControl

ServiceControl can be configured to use one of the supported message transports which are configured for each instance type using the following settings:

The value for the TransportType settings can be any of the following:

Message TransportTransportType values
Azure Service BusNetStandardAzureServiceBus
Azure Storage QueuesAzureStorageQueue
Amazon Simple Queue Service (SQS)AmazonSQS
RabbitMQ
See topology options below.
RabbitMQ.QuorumConventionalRouting
RabbitMQ.ClassicConventionalRouting
RabbitMQ.QuorumDirectRouting
RabbitMQ.ClassicDirectRouting
SQL ServerSQLServer
PostgreSQLPostgreSQL
Microsoft Message Queuing (MSMQ)MSMQ

Follow the link for each transport for additional information on configuration options for that transport lower on this page.

Azure Service Bus

In addition to the connection string options of the transport the following ServiceControl specific options are available in versions 4.4 and above:

  • TransportType=AmqpWebSockets - Configures the transport to use AMQP over websockets.
  • TopicName=<topic-bundle-name> - Specifies the topic name to be used by the instance. The default value is bundle-1.
  • QueueLengthQueryDelayInterval=<value_in_milliseconds> - Specifies the delay between queue length refresh queries for queue length monitoring. The default value is 500 ms.

As of version 4.21.8 of ServiceControl, the following options can be used to enable Managed Identity authentication:

  • Setting the connection string to a fully-qualified namespace (eg. my-namespace.servicebus.windows.net)
    • With this setting, a DefaultAzureCredential will be used.
    • No connection string options can be used when using a fully-qualified namespace.
  • Specifying the connection string option Authentication=Managed Identity
    • The fully-qualified namespace will be parsed from the Endpoint=sb://my-namespace.servicebus.windows.net/ connection string option
    • When specifying managed identity for the connection string, a ManagedIdentityCredential will be used.
    • Set the ClientId=some-client-id connectionstring option to use a specific user-assigned identity

As of versions 4.33.3 and 5.0.5 of ServiceControl, support for partitioned entities can be enabled by adding the following connection string parameter:

  • EnablePartitioning=<True|False> — Configures the transport to create entities that support partitioning. The default value is false.

Azure Storage Queues

ServiceControl does not add any connection settings beyond the Azure Storage connection string.

RabbitMQ

RabbitMQ contains different TransportType options based on the topology and queue type used by the system:

Queue TypeTopologyTransporType value
QuorumConventionalRabbitMQ.QuorumConventionalRouting (Preferred)
QuorumDirectRabbitMQ.QuorumDirectRouting
ClassicConventionalRabbitMQ.ClassicConventionalRouting
ClassicDirectRabbitMQ.ClassicDirectRouting

In addition to the connection string options of the transport the following ServiceControl specific options are available in versions 4.4 and above:

SQL

In addition to the connection string options of the transport the following ServiceControl specific options are available in versions 4.4 and above:

  • Queue Schema=<schema_name> - Specifies custom schema for the ServiceControl input queue.
  • Subscriptions Table=<subscription_table_name> - Specifies SQL subscription table name.
    • Optional Subscriptions Table=<subscription_table_name>@<schema> - to specify the schema.
    • Optional Subscriptions Table=<subscription_table_name>@<schema>@<catalog> - to specify the schema and catalog.

PostgreSQL

In addition to the connection string options of the transport the following ServiceControl specific options are available in versions 5.10 and above:

  • Queue Schema=<schema_name> - Specifies a custom schema for the ServiceControl input queue.
  • Subscriptions Table=<subscription_table_name> - Specifies PostgreSQL subscription table name.
    • Optional Subscriptions Table=schema.tablename - to specify the schema with simple table name.
    • Optional Subscriptions Table=schema.multi.table.name - to specify the schema with a table name containing ..
    • Optional Subscriptions Table==&quot;multi.table.name=&quot; - to specify a table name containing . without a schema. In this case, Queue Schema will be used if specified, otherwise the default schema (public) will be used.

Amazon SQS

The following ServiceControl connection string options are available:

  • AccessKeyId=<value> - AssessKeyId value,
  • SecretAccessKey=<value> - SecretAccessKey value,
  • Region=<value> - Region transport option,
  • QueueNamePrefix=<value> - Queue name prefix transport option,
  • TopicNamePrefix=<value> - Topic name prefix transport option
  • S3BucketForLargeMessages=<value> - S3 bucket for large messages option,
  • S3KeyPrefix=<value> - S3 key prefix option.
  • DoNotWrapOutgoingMessages=true - Do not wrap outgoing messages option.

MSMQ

To configure MSMQ as the transport, ensure the MSMQ service has been installed and configured as outlined in MSMQ configuration.