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 | |
|---|---|
| Transactions | None, ReceiveOnly, SendsAtomicWithReceive |
| Pub/Sub | Native |
| Timeouts | Not natively supported |
| Large message bodies | Determined by queue manager MAXMSGL setting |
| Scale-out | Competing consumer |
| Scripted Deployment | Supported via CLI tool |
| Installers | Optional |
| Native integration | Supported |
| OpenTelemetry tracing | Supported |
| Case Sensitive | Yes |
TransactionScope mode (distributed transactions) | No |
| SSL/TLS encryption and certificate-based authentication | Yes |
| Queue and topic names | Limited to 48 characters |
| Delayed delivery | No. Requires an external timeout storage mechanism. |
| Native message grouping | Not 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.
Non-persistent messages are lost if the queue manager restarts before they are consumed.