Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Modernization
Samples

IBM MQ Transport

NuGet Package: NServiceBus.Transport.IBMMQ 1.x
Target Version: NServiceBus 10.x

Provides support for sending messages over IBM MQ using the IBM MQ .NET client.

Broker compatibility

The transport requires IBM MQ 9.0 or later.

Transport at a glance

Feature
TransactionsNone, ReceiveOnly, SendsAtomicWithReceive
Pub/SubNative
TimeoutsNot natively supported
Large message bodiesDetermined by queue manager MAXMSGL setting
Scale-outCompeting consumer
Scripted DeploymentSupported via CLI tool
InstallersOptional
Native integrationSupported
OpenTelemetry tracingSupported
Case SensitiveYes
TransactionScope mode (distributed transactions)No
SSL/TLS encryption and certificate-based authenticationYes
Queue and topic namesLimited to 48 characters
Delayed deliveryNo. Requires an external timeout storage mechanism.
Native message groupingNot yet implemented

Configuring the endpoint

To use IBM MQ as the underlying transport:

var endpointConfiguration = new EndpointConfiguration("MyEndpoint");

var transport = new IBMMQTransport
{
    Host = "mq-server.example.com",
    Port = 1414,
    Channel = "DEV.APP.SVRCONN",
    QueueManagerName = "QM1",
    User = "app",
    Password = "passw0rd"
};

endpointConfiguration.UseTransport(transport);

See connection settings for all available connection and configuration options.

Message persistence

By default, all messages are sent as persistent, meaning they survive queue manager restarts. Messages marked as non-durable are sent as non-persistent for higher throughput.

Related Articles