This is part of the NServiceBus Upgrade Guide from Version 7 to 8, which also includes the following individual upgrade guides for specific components:
Feature Details
- Upgrading the data bus from version 7 to 8
- Dependency Injection changes
- Upgrade NServiceBus downstreams from Version 7 to 8
- Upgrading message contracts from Version 7 to 8
- Upgrade NServiceBus pipeline extensions from Version 7 to 8
- Transport configuration changes
Transports
- AmazonSQS Transport Upgrade Version 5 to 6
- Azure Service Bus Transport Upgrade Version 2 to 3
- Azure Storage Queues Transport Upgrade Version 10 to 11
- MSMQ Transport Upgrade Version 1 to 2
- MSMQ Transport Upgrade Version 2 to 2.0.4
- RabbitMQ Transport Upgrade Version 7 to 8
- SQL Server Transport Upgrade Version 6 to 7
Persistence
- Cosmos DB Persistence Upgrade from 1 to 2
- NHibernate Persistence Upgrade Version 8 to 9
- RavenDB Persistence Upgrade from 7 to 8
- SQL Persistence Upgrade Version 6 to 7
Hosting
Other
Timeout manager
The timeout manager has been removed from NServiceBus 8, so the EnableTimeoutManager
backwards compatibility API has been removed from the transport. The timeout migration tool should be used to migrate any remaining timeout messages.
Certificate connection string options removed
The certPath
and certPassphrase
connection string options have been removed. The SetClientCertificate
API should be used instead.
requestedHeartbeat
connection string option removed
The requestedHeartbeat
connection string option has been removed. The SetHeartbeatInterval
API should be used instead.
retryDelay
connection string option removed
The retryDelay
connection string option has been removed. The SetNetworkRecoveryInterval
API should be used instead.
Transport no longer claims to support TransportTransactionMode.None
The transport does not have any functional difference between TransportTransactionMode.
and TransportTransactionMode.
modes, but there has been no way to indicate this before NServiceBus 8. Now that NServiceBus 8 has enabled this, the transport now only supports TransportTransactionMode.
.
IRoutingTopology
SetupSubscription
and TeardownSubscription
changes
The type
parameter of the SetupSubscription
and TeardownSubscription
methods of the IRoutingTopology
interface has changed from System.
to NServiceBus.
. Custom routing topology implementations will need to be updated.
Invocation of handler code has changed
The invocation of handler code has changed to use the RabbitMQ async consumer.
This has implications when it comes to parallel execution of handlers. For example synchronous handlers will run sequentially.
In order to achieve higher parallelism, handlers need to be modified according to the asynchronous handlers documentation.